2008/05/29

STLSoft // some thoughts regarding performance_counter

Well, I'm started to look at some useful functionality in STLSoft.

I'm not saying that I'm unhappy with the Boost C++ library, but since STLSoft pass to me with Pantheios (Boost still not having logging library) I'd give it a chance :-). You're know - options are good.

First, I come to platformstl.
There were something that I'm interested, particularly performance_counter and I'm was a little frustrated...

I've not found the options to get floating point interval representation/conversion.
Yeah, I know, I know... I can write it by myself by converting each time by multiply ms (.get_microseconds()) representation to 1E-6 for example. But I think this option should be embedded in STLSoft natively to make it usable.

A good example of performance counter present in Intel TBB.

How they differs?

Well create an example how to check performance with both libs...

--- code example --------

-------------------------

--- output -------------
0.000303 seconds our logger
0.000220881 seconds our logger
-------------------------------
First was STLSoft performance_counter.
Second was Intel TBB tick_count.

Intel TBB more accurate.

I think something similar should be added to STLSoft (or already added?)

Waiting for comments from Matt :-)
--
SN

2 comments:

Matt Wilson said...

One reason that the various STLSoft performance counters return integers is to minimise the cost of the measurement themselves. (See http://www.ddj.com/windows/184416651 for a full discussion.)

I guess we could write an adapter of some sorts that would wrap a performance counter class (has interval_type and epoch_type member types, and has start(), stop(), get_microseconds(), get_milliseconds() and get_seconds() methods), and provide the given interval as a floating-point number.

Perhaps this might be your first contribution to the STLSoft libraries? ;-)

Sanik said...

well, maybe ;-)
but actually I waiting while you create source repository for development on sourceforge.
:-)