| [/ |
| / Copyright (c) 2009-20012 Vicente J. Botet Escriba |
| / |
| / Distributed under the Boost Software License, Version 1.0. (See accompanying |
| / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| /] |
| |
| |
| [/==================] |
| [/section Motivation] |
| [/==================] |
| |
| |
| [heading Measuring elapsed time] |
| |
| Knowing how long a program, a function or a specific code block takes to execute is useful in both test and production environments. |
| __Boost_Chrono introduces the __strict_stopwatch_concept concept which is a mechanism to measure the elapsed time. |
| __strict_stopwatch`<>` is the basic model of __strict_stopwatch_concept. |
| |
| [heading Reporting elapsed time] |
| |
| It is often necessary to report elapsed time on a user display or in a log file. __stopwatch_reporter provides a runtime reporting mechanism for this purpose which can be invoked in just one line of code. |
| |
| using namespace boost::chrono; |
| int main() |
| { |
| __stopwatch_reporter<__stopwatch<__process_cpu_clocks> > _; |
| // ... |
| } |
| |
| Will produce the following output |
| |
| real 0.034s, cpu 0.031s (93.0%), user 0.031s, system 0.000s |
| |
| As this is one of the expression more commonly use, the library provides a __stopclock shortcut so the preceding can be written as |
| |
| int main() |
| { |
| __stopclock<__process_cpu_clocks> _; |
| // ... |
| } |
| |
| |