aboutsummaryrefslogtreecommitdiffstats
path: root/checks
diff options
context:
space:
mode:
authorlloyd <[email protected]>2009-10-13 20:38:14 +0000
committerlloyd <[email protected]>2009-10-13 20:38:14 +0000
commitf1980faa1240116b069de2dbbe36353765422b39 (patch)
tree105bb46d1080f764b627253b149ea1f0be8e9b57 /checks
parenta61f24e27bba172300eaafffb10d5ebeafb6a592 (diff)
Fix for removal of Default_Benchmark_Timer
Diffstat (limited to 'checks')
-rw-r--r--checks/bench.cpp21
-rw-r--r--checks/timer.cpp6
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)