首頁 > 後端開發 > C++ > 如何測量 C 函數的執行時間?

如何測量 C 函數的執行時間?

Mary-Kate Olsen
發布: 2024-12-22 17:01:13
原創
111 人瀏覽過

How Can I Measure the Execution Time of a C   Function?

決定 C 語言中的函數執行時間

在 C 程式設計中,可以有效地測量函數的執行時間。 Boost.Chrono 函式庫提供了 process_user_cpu_clock() 函數,該函數會擷取目前處理程序使用的使用者 CPU 時間。此函數以及替代方法為效能最佳化提供了寶貴的見解。

使用 Boost.Chrono 測量 CPU 時間

在 Boost.Chrono 中使用 process_user_cpu_clock() 非常簡單。以下是一個例子:

#include <boost/chrono.hpp>
#include <iostream>

void long_operation() {
  // Simulating a long operation
  boost::chrono::process_user_cpu_clock timer;
  while (timer.seconds() < 1) { }
}

int main() {
  boost::chrono::process_user_cpu_clock start;
  long_operation();
  boost::chrono::process_user_cpu_clock stop;
  std::cout << "Execution time: " << (stop - start).seconds() << " seconds" << std::endl;
  return 0;
}
登入後複製

替代測量方法

在C 11 中,來自 的std::chrono::high_resolution_clock()標頭提供高解析度定時器。以下程式碼說明了其用法:

#include <chrono>
#include <iostream>

void long_operation() {
  // Simulating a long operation
  std::chrono::high_resolution_clock timer;
  std::this_thread::sleep_for(std::chrono::seconds(1));
}

int main() {
  std::chrono::high_resolution_clock::time_point start = std::chrono::high_resolution_clock::now();
  long_operation();
  std::chrono::high_resolution_clock::time_point stop = std::chrono::high_resolution_clock::now();
  std::cout << "Execution time: " << std::chrono::duration_cast<std::chrono::milliseconds>(stop - start).count() << " milliseconds" << std::endl;
  return 0;
}
登入後複製

效能比較

兩種方法都提供可靠的測量。 std::chrono::high_resolution_clock() 是測量特定函數持續時間的首選。 Boost.Chrono 提供了額外的功能,例如執行緒計時和上下文計時器。

結論

透過利用這些方法,開發人員可以有效地確定函數的執行時間,從而實現良好的最佳化和高效C 程式。

以上是如何測量 C 函數的執行時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板