]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/chrono/example/await_keystroke.cpp
1 // await_keystroke.cpp -----------------------------------------------------//
3 // Copyright Beman Dawes 2008
5 // Distributed under the Boost Software License, Version 1.0.
6 // See http://www.boost.org/LICENSE_1_0.txt
8 #define _CRT_SECURE_NO_WARNINGS
10 #include <boost/chrono/chrono.hpp>
14 using namespace boost::chrono
;
16 template< class Clock
>
19 typename
Clock::time_point start
;
22 timer() : start( Clock::now() ) {}
24 typename
Clock::duration
elapsed() const
26 return Clock::now() - start
;
29 double seconds() const
31 return elapsed().count() * ((double)Clock::period::num
/Clock::period::den
);
37 timer
<system_clock
> t1
;
38 timer
<steady_clock
> t2
;
39 timer
<high_resolution_clock
> t3
;
41 std::cout
<< "Strike any key: ";
44 std::cout
<< std::fixed
<< std::setprecision(9);
45 std::cout
<< "system_clock-----------: "
46 << t1
.seconds() << " seconds\n";
47 std::cout
<< "steady_clock--------: "
48 << t2
.seconds() << " seconds\n";
49 std::cout
<< "high_resolution_clock--: "
50 << t3
.seconds() << " seconds\n";
52 system_clock::time_point d4
= system_clock::now();
53 system_clock::time_point d5
= system_clock::now();
55 std::cout
<< "\nsystem_clock latency-----------: " << (d5
- d4
).count() << std::endl
;
57 steady_clock::time_point d6
= steady_clock::now();
58 steady_clock::time_point d7
= steady_clock::now();
60 std::cout
<< "steady_clock latency--------: " << (d7
- d6
).count() << std::endl
;
62 high_resolution_clock::time_point d8
= high_resolution_clock::now();
63 high_resolution_clock::time_point d9
= high_resolution_clock::now();
65 std::cout
<< "high_resolution_clock latency--: " << (d9
- d8
).count() << std::endl
;
67 std::time_t now
= system_clock::to_time_t(system_clock::now());
69 std::cout
<< "\nsystem_clock::now() reports UTC is "
70 << std::asctime(std::gmtime(&now
)) << "\n";