1

boost::timer::cpu_timer用来衡量我的应用程序中某些算法的性能。示例输出如下所示:

Algo1 持续时间:6.755457s 墙,12.963683s 用户 + 1.294808s 系统 = 14.258491s CPU (211.1%)

来自 boost cpu_timer 文档:

该程序的输出将如下所示:

5.713010s wall, 5.709637s user + 0.000000s system = 5.709637s CPU (99.9%)

换句话说,这个程序运行了 5.713010 秒,用墙上的时钟来衡量,操作系统为它收取了 5.709637 秒的用户 CPU 时间和 0 秒的系统 CPU 时间,这两者的总和是 5.709637,和这代表了挂钟时间的 99.9%。

我获得的值是什么意思(211.1%),是否意味着执行我的算法涉及两个以上的内核?

user CPU time和的含义是system CPU time什么?

4

1 回答 1

2

我获得的值是什么意思(211.1%),是否意味着执行我的算法涉及两个以上的内核?

这意味着该程序使用的 CPU 时间是 wall 时间的两倍多。为此,它必须在一段时间内至少在三个内核上运行。

用户 CPU 时间和系统 CPU 时间是什么意思?

用户 CPU 时间是 CPU 运行用户代码的时间。系统 CPU 时间是 CPU 运行系统代码的时间。当您调用系统函数时,例如从文件中读取的函数,您会从正在运行的用户代码切换到正在运行的系统代码,直到该函数返回。

于 2014-10-16T07:12:47.650 回答