From 483eb2f56657e8e7f419ab1a4fab8dce9ade8609 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 20:24:20 +0200 Subject: Adding upstream version 14.2.21. Signed-off-by: Daniel Baumann --- src/boost/libs/timer/test/cpu_timer_info.cpp | 75 ++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/boost/libs/timer/test/cpu_timer_info.cpp (limited to 'src/boost/libs/timer/test/cpu_timer_info.cpp') diff --git a/src/boost/libs/timer/test/cpu_timer_info.cpp b/src/boost/libs/timer/test/cpu_timer_info.cpp new file mode 100644 index 00000000..11e722c8 --- /dev/null +++ b/src/boost/libs/timer/test/cpu_timer_info.cpp @@ -0,0 +1,75 @@ +// boost cpu_timer_info.cpp ----------------------------------------------------------// + +// Copyright Beman Dawes 2011 + +// Distributed under the Boost Software License, Version 1.0. +// See http://www.boost.org/LICENSE_1_0.txt + +// See http://www.boost.org/libs/timer for documentation. + +#include +#include +#include +#include // for atol() +#include +#include + +using boost::timer::nanosecond_type; +using boost::timer::cpu_times; +using boost::timer::cpu_timer; +using boost::timer::auto_cpu_timer; +using std::cout; using std::endl; + +int cpp_main( int argc, char * argv[] ) +{ + cout << '\n'; + cout << "For cpu_times.wall, the underlying clock " + << (boost::chrono::high_resolution_clock::is_steady + ? "is steady. " + : "is not steady. " + ) + << "Steady clocks are defined by C++11 as clocks for which values " + "of time_point never decrease as physical time advances and for " + "which values of time_point advance at a steady rate relative to " + "real time. That is, the clock may not be adjusted.\n\n"; + + cpu_times start_time; + start_time.clear(); + cpu_times current_time; + + { + cpu_timer cpu; + cout << "measure boost::timer::cpu_timer resolution for user time..." + << endl; + for (int i = 0; i < 3; ++i) + { + cpu.start(); + start_time = cpu.elapsed(); + current_time.user = start_time.user; + while (current_time.user == start_time.user) + { + current_time = cpu.elapsed(); + } + cout << current_time.user - start_time.user << "ns\n"; + } + } + + { + cpu_timer cpu; + cout << "measure boost::timer::cpu_timer resolution for wall-clock time..." + << endl; + for (int i = 0; i < 100; ++i) + { + cpu.start(); + start_time.wall = cpu.elapsed().wall; + current_time.wall = start_time.wall; + while (current_time.wall == start_time.wall) + { + current_time.wall = cpu.elapsed().wall; + } + cout << current_time.wall - start_time.wall << "ns "; + } + } + return 0; +} + -- cgit v1.2.3