From: bert hubert Date: Sat, 24 Jan 2015 12:45:28 +0000 (+0100) Subject: add some more microbenchmarks, move speedtest to CPUTime instead of wallclock X-Git-Tag: rec-3.7.0-rc2~46 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ab570fc5029ee229c33c8b0c99c704d69d3ccfc4;p=thirdparty%2Fpdns.git add some more microbenchmarks, move speedtest to CPUTime instead of wallclock --- diff --git a/pdns/speedtest.cc b/pdns/speedtest.cc index 03ba9a2759..3a7f1c9eeb 100644 --- a/pdns/speedtest.cc +++ b/pdns/speedtest.cc @@ -34,12 +34,12 @@ template void doRun(const C& cmd, int mseconds=100) unsigned int runs=0; g_stop=false; - DTime dt; - dt.set(); + CPUTime dt; + dt.start(); while(runs++, !g_stop) { cmd(); } - double delta=dt.udiff()/1000000.0; + double delta=dt.ndiff()/1000000000.0; boost::format fmt("'%s' %.02f seconds: %.1f runs/s, %.02f usec/run"); cerr<< (fmt % cmd.getName() % delta % (runs/delta) % (delta* 1000000.0/runs)) << endl; @@ -134,6 +134,36 @@ struct StaticMemberTest } }; +struct StringtokTest +{ + string getName() const + { + return "stringtok"; + } + + void operator()() const + { + string str("the quick brown fox jumped"); + vector parts; + stringtok(parts, str); + } +}; + +struct VStringtokTest +{ + string getName() const + { + return "vstringtok"; + } + + void operator()() const + { + string str("the quick brown fox jumped"); + vector > parts; + vstringtok(parts, str); + } +}; + struct MakeARecordTest { @@ -859,13 +889,16 @@ try doRun(GenericRecordTest(4, QType::NS, "powerdnssec1.ds9a.nl")); doRun(GenericRecordTest(64, QType::NS, "powerdnssec1.ds9a.nl")); - + doRun(SOARecordTest(1)); doRun(SOARecordTest(2)); doRun(SOARecordTest(4)); doRun(SOARecordTest(64)); + doRun(StringtokTest()); + doRun(VStringtokTest()); + cerr<<"Total runs: " << g_totalRuns<