C 和 C 語言中的高效運行時間測量
準確測量運行時間對於程式設計中的效能分析至關重要。然而,標準 C 函數 time() 對於短期任務可能不可靠。
在 C 中使用 gettimeofday()
為了解決這個問題,C 程式設計師可以使用 gettimeofday() 函數,該函數會傳回微秒精確度的當前時間。以下是一個範例:
#include <sys/time.h> struct timeval startTV, endTV; gettimeofday(&startTV, NULL); // Start time // Perform long-running tasks gettimeofday(&endTV, NULL); // End time time_t diffSeconds = endTV.tv_sec - startTV.tv_sec; long diffMicroseconds = endTV.tv_usec - startTV.tv_usec; printf("Time taken: %ld seconds, %ld microseconds\n", diffSeconds, diffMicroseconds);
在C 中使用std::chrono
在C 中,std::chrono 函式庫提供了一種更現代、更便攜的測量解決方案經過的時間。考慮這個例子:
#include <chrono> using namespace std::chrono; auto begin = steady_clock::now(); // Start time // Perform long-running tasks auto end = steady_clock::now(); // End time duration<double, nano> diff = end - begin; cout << "Time taken: " << diff.count() << " nanoseconds" << endl;
理解結果
gettimeofday() 和std::chrono 的輸出將回傳以秒和微秒為單位的時間差/納秒。例如:
在第一個範例中,經過的時間是4.025秒,而在第二個範例中例如,它是 0.026339 秒。請注意,std::chrono 預設會傳回奈秒,因此如果需要,您可能需要手動將它們轉換為微秒或秒。
以上是如何準確測量 C 和 C 中經過的時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!