ホームページ >バックエンド開発 >C++ >C で経過時間を正確に測定するにはどうすればよいですか?

C で経過時間を正確に測定するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-30 15:41:10527ブラウズ

How Can I Accurately Measure Elapsed Time in C  ?

経過時間を簡単に測定する

番組セグメントの経過時間を正確に測定するには、精度の低い time() 関数の代替手段を使用できます。

使用中gettimeofday()

提供されたコードに示されているように、gettimeofday() はマイクロ秒までのタイマー精度を提供します。開始時間と終了時間の測定の差を計算することで、経過時間の値を取得できます。

結果の解釈

時間値の解釈:

  • 所要時間 = 0 26339: 26,339 を表しますマイクロ秒、または約 26.339 ミリ秒。
  • 所要時間 = 4 45025: 4 秒と 45.025 ミリ秒を表します。

C 11アプローチ

より現代的で正確なアプローチでは、C 11 を使用します。 library:

  • std::chrono::steady_ Clock::now(): 現在時刻をナノ秒の精度で取得します。 : 時間差を希望の単位に変換します (例: マイクロ秒または
コード例

このコードは、マイクロ秒とナノ秒の両方で時間差を計算し、time() やgettimeofday().
// 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;

以上がC で経過時間を正確に測定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。