![]() |
1
56
也许吧。但你有更大的问题。
你应该调查一下
此外,请查看
|
![]() |
2
41
英特尔处理器的高分辨率、低开销定时 如果您使用的是Intel硬件,下面介绍如何读取CPU实时指令计数器。它将告诉您自启动处理器以来执行的CPU周期数。这可能是用于性能度量的最好的粒度计数器。 请注意,这是CPU周期数。在Linux上,您可以从/proc/cpuinfo获得CPU速度,然后除以得到秒数。把这个换成双份的非常方便。 当我把这个放在我的盒子上时,我会
这里是 Intel developer's guide 这提供了大量的细节。
|
![]() |
3
18
@伯纳德:
这是个好问题…我想代码没问题。 从实际出发,我们每天都在公司使用它, 我们在一个相当宽的盒子上运行,从2到8个核心。 当然,YMMV等,但它似乎是一个可靠的低开销 (因为它不会使上下文切换到系统空间)方法 计时的 一般来说,它的工作原理是:
具体说明:
希望这能满足你的好奇心,这是一个有趣的(imho) 在编程的研究领域。你知道杰夫和乔尔什么时候 讨论程序员是否应该知道C?我是 对他们大喊大叫,“嘿,忘了那些高级的C级东西……汇编程序 如果你想知道电脑是什么,你应该学什么 “干!” |
![]() |
4
14
|
![]() |
5
11
Wine实际上使用getTimeOfDay()来实现queryPerformanceCounter(),它可以使许多Windows游戏在Linux和Mac上运行。 |
![]() |
6
10
数据结构被定义为以微秒为测量单位,但这并不意味着时钟或操作系统实际上能够精确测量。
就像其他人建议的那样,
|
![]() |
7
9
|
![]() |
8
5
根据我的经验,以及我在互联网上看到的,答案是“不”,这是不确定的。它取决于CPU的速度、操作系统、Linux的风格等。 |
![]() |
9
5
This answer
提到正在调整时钟的问题。你的问题,保证蜱单位和问题的时间调整,解决了在C++ 11与
时钟
您可以通过转换为
|
![]() |
10
3
在SMP系统中读取RDTSC是不可靠的,因为每个CPU都维护自己的计数器,并且每个计数器不保证与另一个CPU同步。
我建议你试试
|