diff options
Diffstat (limited to 'eigen/bench/btl/generic_bench/timers')
-rw-r--r-- | eigen/bench/btl/generic_bench/timers/portable_perf_analyzer.hh | 2 | ||||
-rw-r--r-- | eigen/bench/btl/generic_bench/timers/portable_timer.hh | 46 |
2 files changed, 45 insertions, 3 deletions
diff --git a/eigen/bench/btl/generic_bench/timers/portable_perf_analyzer.hh b/eigen/bench/btl/generic_bench/timers/portable_perf_analyzer.hh index fc0f316..5e579fb 100644 --- a/eigen/bench/btl/generic_bench/timers/portable_perf_analyzer.hh +++ b/eigen/bench/btl/generic_bench/timers/portable_perf_analyzer.hh @@ -78,7 +78,7 @@ public: // time measurement action.calculate(); _chronos.start(); - for (int ii=0;ii<_nb_calc;ii++) + for (unsigned int ii=0;ii<_nb_calc;ii++) { action.calculate(); } diff --git a/eigen/bench/btl/generic_bench/timers/portable_timer.hh b/eigen/bench/btl/generic_bench/timers/portable_timer.hh index e6ad309..c199811 100644 --- a/eigen/bench/btl/generic_bench/timers/portable_timer.hh +++ b/eigen/bench/btl/generic_bench/timers/portable_timer.hh @@ -34,7 +34,7 @@ // timer -------------------------------------------------------------------// // A timer object measures CPU time. -#ifdef _MSC_VER +#if defined(_MSC_VER) #define NOMINMAX #include <windows.h> @@ -87,6 +87,48 @@ }; // Portable_Timer +#elif defined(__APPLE__) +#include <CoreServices/CoreServices.h> +#include <mach/mach_time.h> + + +class Portable_Timer +{ + public: + + Portable_Timer() + { + } + + void start() + { + m_start_time = double(mach_absolute_time())*1e-9;; + + } + + void stop() + { + m_stop_time = double(mach_absolute_time())*1e-9;; + + } + + double elapsed() + { + return user_time(); + } + + double user_time() + { + return m_stop_time - m_start_time; + } + + +private: + + double m_stop_time, m_start_time; + +}; // Portable_Timer (Apple) + #else #include <sys/time.h> @@ -138,7 +180,7 @@ private: int m_clkid; double m_stop_time, m_start_time; -}; // Portable_Timer +}; // Portable_Timer (Linux) #endif |