From: CARL B. <cba...@ro...> - 2008-04-28 06:19:52
|
On Apr 28, 2008, at 12:26 AM, fff...@ya... wrote: > I have made a grammar for Spirit (boost 1.34.1). > The grammar describes a small programming language and contains > roughly 15 rules. > > I have a benchmark that parses a fixed input string and measures the > time for executing pt_parse() N times. > > The project is compiled with VisualStudio 2005 in Release mode (full > optimization). When it is executed without debugging, the benchmark > shows 12000 executions per second. > Now the bizarre thing is, that when the same executable is started > _with_ Debugging (no breakpoints or watched expressions activated), > the performance shrinks by factor 60 (possibly more)! Now I get only > 200 executions/second. > > It's normal that the debugger has a negative influence on performance, > but 60x is not what I observe with other code. Spirit seems to be much > more vulnerable to performance loss under debug execution that other > libs. > > Does anyone have experience with this and knows how I can get a better > performance with running Spirit in the VS2005 debugger? > > Oliver Frick > > Not too surprising:) I don't use VS x so I can't detail anything but the primary considerations of most 'debug' modes is easy debugging and not execution speed and they probably don't inline or optimize anything. Templated code often requires inlining and optimizations to be fast. If you can construct a mode that does inlining and possibly some optimization, the source level debugger will be confused,,,, |