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

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

Patricia Arquette
リリース: 2024-12-22 20:10:12
オリジナル
702 人が閲覧しました

How Can I Accurately Measure Elapsed Time in C and C  ?

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 秒、25 マイクロ秒 (gettimeofday() を使用)
  • 所要時間: 26,339 マイクロ秒 (std::chrono を使用)

最初の例では、経過時間は 4.025 秒ですが、 2 番目の例では、0.026339 秒です。 std::chrono はデフォルトでナノ秒を返すため、必要に応じてマイクロ秒または秒に手動で変換する必要がある場合があることに注意してください。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート