我試圖測量在我的代碼中執行特定功能所用的時間。最初,我使用的clock()
功能如下由時鐘和steady_clock測量的時間差
clock_t start = clock();
do_something();
clock_t end = clock();
printf("Time taken: %f ms\n", ((double) end - start)*1000/CLOCKS_PER_SEC);
後,我在C++11
閱讀有關chrono
庫並試圖測量同一個std::chrono::steady_clock
如下
using namespace std::chrono;
auto start = steady_clock::now();
do_something();
auto end = steady_clock::now();
printf("Time taken: %lld ms\n", duration_cast<milliseconds>(end - start).count());
由第一代碼測量的時間片段(使用clock
)爲89.53 ms
,並且由steady_clock
測量的結果爲1140 ms
。
爲什麼兩個時鐘測量的時間差異如此之大?
如果可能,您可以創建[mcve]嗎? – Rakete1111
@ Rakete1111:這裏是[鏈接](http://coliru.stacked-crooked.com/a/9f74e57079978629)到一個小的測試用例,其中問題是可重現的。 –