C++ 库boost里使用定时器计时
Posted caimouse
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 库boost里使用定时器计时相关的知识,希望对你有一定的参考价值。
在程序里常常需要使用计时的动作,并且计时有三种形式,一种是系统日历的时钟,也叫做系统时间(wall clock time, elapsed time), 是指一段程序从运行到终止,系统时钟走过的时间。一般来说,系统时间都是要大于CPU时间的。通常这类时间可以由系统提供,在C++/Windows中,可以由<time.h>提供。注意得到的时间精度是和系统有关系的。
第二个是进程运行CPU的时间,执行调用进程的用户指令所花费的CPU时间。
第三个是系统调用进程的时间。
在boost定时器类里定义如下:
struct cpu_times
{
nanosecond_type wall;
nanosecond_type user;
nanosecond_type system;
void clear() { wall = user = system = 0; }
};
按boost官方文档的说法,wall指的是程序运行的真实时间,user指的是用户CPU时间,system指系统CPU时间。其中,真实时间易受其它程序运行干扰,是不稳定的。如果是衡量算法运行时间,更好的度量是user和system之和。从变量类型可以看出,所以的时间单位均为纳秒(ns)。
下面来设计一个例子,计算系统时间每过5秒就输出一个字符串,可以实现如下:
void CTestTimer::OneSecond(void)
{
static boost::timer::auto_cpu_timer t;
auto nanoseconds = boost::chron
以上是关于C++ 库boost里使用定时器计时的主要内容,如果未能解决你的问题,请参考以下文章