TSC計時——高精度,低消耗
rdtsc指令返回的是自開機始CPU的週期數,返回的是一個64位的值EDX:EAX(高32在EDX,低32位在EAX)。OK,完全可以利用這條指令,測試我們的關注的一段程式碼的執行效率。
rdtsc直接通過彙編從暫存器中獲取時間,時間消耗極低(0.0Xus左右的消耗,具體X為多少與機器本身相關)。精度可以精確到ns級別。
// 返回64位的CPU circle次數
inline unsigned long long getTimeByTSC(){
#if defined(__GNUC__)
# if defined(__i386__)
uint64_t x;
__asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
return x;
# elif defined(__x86_64__)
uint32_t hi, lo;
__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
return ((uint64_t)lo) | ((uint64_t)hi << 32);
# else
# error Unsupported architecture.
# endif
#elif defined(_MSC_VER)
__asm {
return __rdtsc();
}
#else
# error Other compilers not supported...
#endif
}
相關文章
- 高精度計時器
- 高精度計算合集
- 高精度 加+ 高精度
- 高精度 減- 高精度
- 高精度-高精度減法
- TSC 243pro印表機偏移問題
- .NET中如何實現高精度定時器定時器
- [20201121]顯示時間戳高精度版本.txt時間戳
- 高精度乘法
- 數學-高精度
- 高精度計算庫math.js使用踩坑記JS
- JavaScript的高精度計算與JSON.parse的BIGINTJavaScriptJSON
- tsc、babel、webpack對模組匯入匯出的處理BabelWeb
- 高精度乘法C++C++
- 高精度加法筆記筆記
- 高精度加減乘
- 高精度+低精度加法
- 高精度 除/ 低精度
- PTAV:實時高精度目標追蹤框架 | ICCV 2017論文解讀框架
- 高精度整數的乘法
- 高精度之階乘和
- 高精度數學運算
- 高精度室內定位 室內精確定位最高精度能達到多少?
- 光學雨量計:高精度測量降水量的理想解決方案
- 高精度加法(C語言實現)C語言
- UWB高精度定位系統原始碼原始碼
- 基礎練習 高精度加法(java)Java
- vue中使用decimal.js對前端數值型別進行高精度計算VueDecimalJS前端型別
- c++ u7-02-高精度乘法C++
- 高精度減法(C語言實現)C語言
- 高精度定位的幾種解決方案
- 利用AI進行高精度影像編輯︰EditGANAI
- 高精度四件套(加減乘除)
- Java中的定時任務最佳化:從Cron表示式到高精度排程的實現Java
- 計時 timeit
- Flutter倒數計時/計時器的實現Flutter
- 高精度人像背景分割SDK技術解決方案
- 更高效能表現、更低資源佔用,高精度計算資料型別 DecimalV3 揭秘資料型別Decimal