![]() |
Home | Libraries | People | FAQ | More |
We all deal with time every day of our lives. We've intuitively known it since birth. Thus we are all very familiar with it and believe it to be a simple matter. The modeling of time in computer programs should be similarly simple. The unfortunate truth is that this perceived simplicity is only skin deep. Fortunately, we do not need a terribly complicated solution to meet the bulk of our needs. However, overly simplistic solutions can be dangerous and inefficient, and won't adapt as the computer industry evolves.
Boost.Chrono implements the new time facilities in C++11, as proposed in N2661 - A Foundation to Sleep On. That document provides background and motivation for key design decisions and is the source of a good deal of information in this documentation.
In addition to the clocks provided by the standard proposal, Boost.Chrono provides specific process and thread clocks.
To make the timing facilities of Boost.Chrono more generally useful, the
library provides a number of clocks that are thin wrappers around the operating
system's process time API, thereby allowing the extraction of wall clock
time, user CPU time, and system CPU time of the process. Wall clock time
is the sum of CPU time and system CPU time. (On POSIX-like systems, this
relies on times()
.
On Windows, it relies on GetProcessTimes()
.)