首頁 >後端開發 >C++ >如何在 C 語言中準確測量經過的時間?

如何在 C 語言中準確測量經過的時間?

Patricia Arquette
Patricia Arquette原創
2024-12-30 15:41:10538瀏覽

How Can I Accurately Measure Elapsed Time in C  ?

輕鬆測量經過的時間

為了準確測量程式片段的經過時間,可以使用不太精確的time() 函數來取代。

使用gettimeofday()

如提供的程式碼所示,gettimeofday() 提供低至微秒的計時器精確度。透過計算開始時間和結束時間測量之間的差異,您可以獲得經過的時間值。

解釋結果

時間值解釋:

  • 所用時間= 0 26339: 微代表26,333或大約26.339 毫秒。
  • 所用時間 = 4 45025: 表示 4 秒和 45.025 毫秒。

C 11方法

更現代、更精確的方法使用C 11 library:

  • std: :chrono::steady_clock::now():以奈秒精度檢索目前時間。
  • duration_cast<:chrono::microseconds> :將時間差轉換為所需的單位(例如微秒或奈秒)。

範例程式碼

// C++11 Style:
#include <chrono>

std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now();
std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();

std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::microseconds>(end - begin).count() << "[µs]" << std::endl;
std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin).count() << "[ns]" << std::endl;

此程式碼計算以微秒和奈秒為單位的時間差,提供比time() 或gettimeofday().

以上是如何在 C 語言中準確測量經過的時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn