繁体   English   中英

如何在多核计算机上解释boost :: timer :: cpu_timer的输出?

[英]How to interpret the output of boost::timer::cpu_timer on multicore machine?

我使用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 timesystem CPU time是什么意思?

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

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

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

用户CPU时间是CPU运行用户代码的时间。 系统CPU时间是CPU运行系统代码的时间。 调用系统功能(例如从文件读取的功能)时,您将从运行的用户代码切换到运行的系统代码,直到该函数返回为止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM