Re: Benchmarking program to test C++ functions?
On Jun 13, 11:25 am, "Jim Langston" <tazmas...@rocketmail.com> wrote:
"desktop" <f...@sss.com> wrote in message
news:f4oc7h$952$1@news.net.uni-c.dk...
I have written two different insert functions in a C++ program and would
like to test the difference in performance.
Can you recommend any benchmarking software for C++ functions that can =
do
this job? I am working under linux/ubuntu.
I just use clock. such as:
clock_t Start = clock();
// Map find is so fast one search reports 0ns
for ( int i = 0; i < 1000; ++i )
FindInMap( "Bogus", "Bogus", MapData );
clock_t End = clock();
std::cout << "Search for non existant entry in Map: " <<
static_cast<double>( End - Start ) / 1000.0 << "ns\n";
You would need to include <ctime>
I am not sure if it's supposed to be std::clock or not (not
using namespace std, yet it finds it anyway in windows).
If you include <ctime>, it's suppose to be std::clock, and only
std::clock. If you include <time.h>, it's suppose to be both
std::clock and ::clock. To date, I've yet to see a conforming
implementation; I include <time.h> and use clock (no ::), and
that seems to work everywhere.
The problem with this solution, per se, is that you really need
something to ensure that the optimizer doesn't eliminate the
find completely. What I've used, to date, is to put the
fonction to be tested in a virtual function in a derived class,
and to ensure that it uses the results of what I'm testing to
update something in the object. This seems to have worked so
far, but one day or other, I'm sure that compilers will make it
insufficient as well.
If anyone's interested, the code is in BenchHarness, in the Test
subsystem at my site (http://kanze.james.neuf.fr/code-en.html,
when it's working).
--
James Kanze (Gabi Software) email: james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34