背景
確定C 中特定函數的執行時間可以是對於效能分析和優化至關重要。 Native Linux 提供了有限的準確測量時間的選項,Boost.Chrono 中的 process_user_cpu_clock 函數僅針對使用者 CPU 時間,而不涵蓋整個函數執行時間。
更精確的解決方案
幸運的是,C 11 透過來自標頭。這個高解析度時鐘可以準確、全面地測量函數執行時間。
程式碼片段示範如何使用 high_resolution_clock 來測量long_operation 函數的持續時間。 t1 和 t2 變數記錄執行函數之前和之後的時間戳,並將差異轉換為毫秒以進行顯示。
透過採用此技術,您可以獲得精確且一致的函數執行時間測量,無論在什麼情況下CPU負載變化,確保可靠的效能評估。#include <chrono> /* Only for this example. */ #include <iostream> #include <thread> void long_operation() { /* Simulating a long, intensive operation. */ using namespace std::chrono_literals; std::this_thread::sleep_for(150ms); } int main() { using std::chrono::high_resolution_clock; using std::chrono::duration_cast; using std::chrono::duration; using std::chrono::milliseconds; auto t1 = high_resolution_clock::now(); long_operation(); auto t2 = high_resolution_clock::now(); /* Milliseconds as an integer. */ auto ms_int = duration_cast<milliseconds>(t2 - t1); /* Milliseconds as a double. */ duration<double, std::milli> ms_double = t2 - t1; std::cout << ms_int.count() << "ms\n"; std::cout << ms_double.count() << "ms\n"; return 0; }
以上是如何準確測量 C 函數的執行時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!