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