diff options
author | lloyd <[email protected]> | 2009-10-13 20:38:14 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2009-10-13 20:38:14 +0000 |
commit | f1980faa1240116b069de2dbbe36353765422b39 (patch) | |
tree | 105bb46d1080f764b627253b149ea1f0be8e9b57 /checks | |
parent | a61f24e27bba172300eaafffb10d5ebeafb6a592 (diff) |
Fix for removal of Default_Benchmark_Timer
Diffstat (limited to 'checks')
-rw-r--r-- | checks/bench.cpp | 21 | ||||
-rw-r--r-- | checks/timer.cpp | 6 |
2 files changed, 18 insertions, 9 deletions
diff --git a/checks/bench.cpp b/checks/bench.cpp index f821e04e3..e733c75ec 100644 --- a/checks/bench.cpp +++ b/checks/bench.cpp @@ -10,6 +10,10 @@ #include <botan/parsing.h> #include <botan/symkey.h> +#include <chrono> + +typedef std::chrono::high_resolution_clock benchmark_clock; + #include "common.h" #include "bench.h" @@ -152,13 +156,12 @@ bool bench_algo(const std::string& algo, Botan::RandomNumberGenerator& rng, double seconds) { - Botan::Default_Benchmark_Timer timer; Botan::Algorithm_Factory& af = Botan::global_state().algorithm_factory(); u32bit milliseconds = static_cast<u32bit>(seconds * 1000); std::map<std::string, double> speeds = - algorithm_benchmark(algo, milliseconds, timer, rng, af); + algorithm_benchmark(algo, milliseconds, rng, af); if(speeds.empty()) // maybe a cipher mode, then? { @@ -198,17 +201,23 @@ bool bench_algo(const std::string& algo, Botan::Pipe pipe(filt, new Botan::BitBucket); pipe.start_msg(); - const u64bit start = timer.clock(); - u64bit nanoseconds_used = 0; + std::chrono::nanoseconds max_time(nanoseconds_max); + std::chrono::nanoseconds time_used(0); + + auto start = benchmark_clock::now(); + u64bit reps = 0; - while(nanoseconds_used < nanoseconds_max) + while(time_used < max_time) { pipe.write(&buf[0], buf.size()); ++reps; - nanoseconds_used = timer.clock() - start; + time_used = benchmark_clock::now() - start; } + u64bit nanoseconds_used = + std::chrono::duration_cast<std::chrono::nanoseconds>(time_used).count(); + double mbytes_per_second = (953.67 * (buf.size() * reps)) / nanoseconds_used; diff --git a/checks/timer.cpp b/checks/timer.cpp index 8460257d4..aaea4b361 100644 --- a/checks/timer.cpp +++ b/checks/timer.cpp @@ -1,5 +1,5 @@ #include "timer.h" -#include <botan/benchmark.h> +#include <chrono> #include <iomanip> Timer::Timer(const std::string& n, u32bit e_mul) : @@ -32,8 +32,8 @@ void Timer::stop() u64bit Timer::get_clock() { - Botan::Default_Benchmark_Timer timer; - return timer.clock(); + auto now = std::chrono::high_resolution_clock::now().time_since_epoch(); + return std::chrono::duration_cast<std::chrono::nanoseconds>(now).count(); } std::ostream& operator<<(std::ostream& out, Timer& timer) |