有些精确测量CPU使用率的最低时间分辨率是多少?

时间:2011-05-01 12:54:54

标签: linux cpu-usage performance

我想测量的一些东西非常短,如果我不在中间运行任何设置/配置代码,我只能重复这么多次。

注意:在linux上,阅读/ proc / stat

1 个答案:

答案 0 :(得分:0)

不太便携,你必须非常小心,因此它是可靠的,但Time Stamp Counter肯定有最高的分辨率(每个CPU滴答都会增加)。

  

时间戳计数器有,直到   最近,一直很优秀   高分辨率,低开销的方式   获取CPU时序信息。同   多核/超线程的出现   CPU,具有多个CPU的系统,以及   “冬眠”操作系统   TSC不能依赖提供   准确的结果 - 除非非常小心   采取纠正可能的   缺陷:滴答率和是否全部   核心(处理器)具有相同的   他们的计时价值   寄存器。没有承诺   多个时间戳计数器   单个主板上的CPU将是   同步。在这种情况下,   程序员只能获得可靠性   将代码锁定到a的结果   单CPU。即使这样,CPU速度也是如此   可能因节电而改变   操作系统或BIOS采取的措施,或   系统可以休眠,然后再进行   恢复(重置时间戳   计数器)。在后一种情况下,到   保持相关,柜台必须   定期重新校准(根据   到你的时间决议   申请要求)。

页面上还有一些关于Linux特定解决方案的说明:

  

在Linux下,类似的功能是   通过阅读的价值提供   使用POSIX的CLOCK_MONOTONIC时钟   clock_gettime函数。