
20 Jan
2010
20 Jan
'10
6:15 p.m.
I've used simpler implementations of things like this before and always had an issue with nested trace points (usually nested function calls where each function contains a trace point). When the nesting is deep enough, the cumulative overhead of all the tracing functionality made the data unreliable except for the inner-most trace points. It would be interesting to know which of Boost.Chrono, Boost.Tracer, and Boost.Log handle this the best.
As for Boost.Log, there's no difference in how many nested functions you call within the timed scope. Every log record (or trace point, as you would call it) simply acquires the actual timer value, and the complexity of this operation is constant.