|
|
发表于 2007-10-6 16:05:00
|
显示全部楼层
Re:如何知道一个程序的运算时间
摘取:http://bbs.pediy.com/showthread.php?t=51154
- QueryPerformanceCounter()采用3.579545MHZ计时器,精度能达到us.
- rdtsc取CPU内部time stamp counter,精度是ns级的。
- 你可以实测一下两段代码消耗的cpu周期数。
- // Win32, C++ return an int64, is EDX:EAX
- // rdtsc: 0F31
- __inline unsigned __int64 cput_64bit(void)
- {
- __asm _emit 0x0F
- __asm _emit 0x31
- }
- uint64 cpucnt_now;
- CRITICAL_SECTION g_critical_cpu_cnt;
- InitializeCriticalSection(&g_critical_cpu_cnt);
- EnterCriticalSection(&g_critical_cpu_cnt);
- cpucnt_now = cput_64bit();
- // 待测代码段
- cpucnt_now = cput_64bit() - cpucnt_now;
- LeaveCriticalSection(&g_critical_cpu_cnt);
复制代码 |
|