[英]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 time
和system CPU time
是什么意思?
我获得的值(211.1%)是什么意思,是否意味着我的算法执行涉及两个以上的内核?
这意味着该程序使用的CPU时间是墙时间的两倍多。 为此,它必须已经在至少三个内核上运行了一段时间。
用户CPU时间和系统CPU时间是什么意思?
用户CPU时间是CPU运行用户代码的时间。 系统CPU时间是CPU运行系统代码的时间。 调用系统功能(例如从文件读取的功能)时,您将从运行的用户代码切换到运行的系统代码,直到该函数返回为止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.