|
Boost : |
Subject: [boost] [Boost.tracer] library request
From: Andrew Chinkoff (achinkoff_at_[hidden])
Date: 2010-01-19 18:47:03
[Boost.tracer] library request is founded on a desire to
trace some statistics about program execution.
The sample program below demonstrates these statistics.
Sample program file:
******** START OF FILE ********
#include <tracer.h>
void foo()
{
TRACE_LIFETIME;
usleep(rand() % 100000);
}
int main()
{
TRACE_LIFETIME;
for(int i = 0; i < 100; ++i)
foo();
}
******** END OF FILE ********
Produced log file:
******** START OF FILE ********
All the program time: 05265686 us (micro secs)
TRACE POINT:
Function: int main()
Calls: 0000000001 times
Average T between calls: 0000000000 us
Average life T: 0005264459 us
File: main.cpp
Line: 00000009
TRACE POINT:
Function: void foo()
Calls: 0000000100 times
Average T between calls: 0000051665 us
Average life T: 0000052606 us
File: main.cpp
Line: 00000004
******** END OF FILE ********
Comment:
TRACE_LIFETIME is a MACRO that traces some scope statistics, namely:
"Function" - the function name where the scope is;
"Calls" - number of entries into this scope;
"Average T between calls" - average time period between "Calls";
"Average life T" - average time spent in this scope.
Conclusion:
I think it is reasonable to introduce this trace functionality into
(for example) boost::tracer namespace.
I had wrote tracer.h and tracer.cpp source files and
I wish Boost community to consider them.
Thank You.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk