Windows 上的 C++ 中有没有办法以纳秒为单位测量时间?
我能找到的只是linux解决方案。
使用该QueryPerformanceFrequency
函数查看 QueryPerformanceCounter 的运行速度。我认为它可能在纳秒范围内。
查看 Windows 上的 QueryPerformanceCounter。
在对代码进行计时以识别性能瓶颈时,您希望使用系统必须提供的最高分辨率计时器。本文介绍如何使用 QueryPerformanceCounter 函数对应用程序代码进行计时
使用 Windows7 和硬件计数器分析 API http://msdn.microsoft.com/en-us/library/windows/desktop/dd796395(v=vs.85).aspx
rdtsc 和 QueryPerformanceCounter/QueryPerformanceFrequency 都不够准确,因为开销大,中断和任务切换。
[编辑]:抱歉将 PerformanceCounter 的链接与硬件计数器混淆了。抱歉只使用过一次,这是一个快速的答案。
如果您可以运行自己的程序集,则可以读取 CPU 的周期计数器并将周期差除以 CPU 的时钟速率:
static inline uint64_t get_cycles()
{
uint64_t t;
__asm__ __volatile__ ("rdtsc" : "=A"(t));
return t;
}