2、在 Intel Pentium以上級別的CPU中,有壹個稱為“時間戳(Time Stamp)”的部件,它以64位無符號整型數的格式,記錄了自CPU上電以來所經過的時鐘周期數。由於目前的CPU主頻都非常高,因此這個部件可以達到納秒級的計時精度。
3、因為RDTSC不被C++的內嵌匯編器直接支持,所以要用_emit偽指令直接嵌入該指令的機器碼形式0X0F、0X31,如下:
inline unsigned __int64 GetCycleCount()
{
__asm _emit 0x0F
__asm _emit 0x31
}
4、在需要計數器的場合,可以像使用普通的Win32 API壹樣,調用兩次GetCycleCount函數,比較兩個返回值的差,像這樣:
unsigned long t;
t = (unsigned long)GetCycleCount();
//Do Something time-intensive ...
t -= (unsigned long)GetCycleCount();