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里使用定时器计时的主要内容,如果未能解决你的问题,请参考以下文章

C++ Boost ASIO 简单的周期性定时器?

boost中使用 timer

C++实现一个简单的计时器

c++ boost文件夹放在哪

如何在使用片段和计时器的选项卡式活动上更新 UI

Boost ASIO TCP计时器客户端错误“解决:找不到指定的类”