我读过一些低延迟技术论文,他们通过 CPU 测量时序,因为它更准确。
通常在Java中我会使用:
System.nanoTime()
在 C++ 中,我相信我曾经使用过一种性能计数器方法,我在网上发现它可以精确到纳秒。它使用 LARGE_INTEGER,分配给您希望测量的准确度,然后通过引用传递给 QueryPerformanceCounter() 并返回除以频率的答案。
是否有任何 Java 等效代码来根据 CPU 测量时间,还是必须使用某种 PInvoke?
编辑:
要以这种精度水平计时,必须使用来自 CPU 的时间戳计数器。我们选择了具有不变 TSC 的 CPU,因为旧处理器会因省电和睡眠状态而受到频率变化的影响。
我对 Windows 和 Linux 的答案很感兴趣,但如果人们能解释他们的答案是否特定于其中一个,我将不胜感激。