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

C 関数の実行時間を正確に測定するにはどうすればよいですか?

DDD
リリース: 2024-12-28 02:26:14
オリジナル
700 人が閲覧しました

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

C での関数の実行時間の測定

C では、システム負荷により関数の実行時間を正確に測定することが困難になる場合がありますバリエーション。これにより、std::chrono::system_lock::now() などの標準メソッドを使用すると、信頼性の低い結果が生じる可能性があります。

Boost.Chrono を使用した代替アプローチ

The Boost .Chrono ライブラリは、関数の実行時間を測定するためのより正確な方法を提供します。具体的には、process_user_cpu_ Clock 関数は、現在のプロセスが費やした CPU 時間をキャプチャします。

process_user_cpu_ Clock の使用

process_user_cpu_ Clock を使用するには、chrono ヘッダーを含めて、次の手順に従います。

  1. 関数を定義して、 time:
void timed_function() {
    // Your code to execute
}
ログイン後にコピー
  1. 実行時間を測定します:
using namespace boost::chrono;
duration<double, std::milli> elapsed;
auto start = process_user_cpu_clock();
timed_function();
auto end = process_user_cpu_clock();
elapsed = end - start;
ログイン後にコピー

変数 elapsed には、時間指定された関数の継続時間がミリ秒単位で含まれます。

C の高解像度クロック11

C 11 以降を使用している場合は、正確なタイミングを得るために std::chrono::high_resolution_ Clock を利用することもできます。次の例に示すように、使用法は Boost.Chrono と似ています。

using namespace std::chrono;
using ms = milliseconds;
auto t1 = high_resolution_clock::now();
timed_function();
auto t2 = high_resolution_clock::now();
duration<ms> elapsed = t2 - t1;
ログイン後にコピー

速度比較

Boost.Chrono または std::chrono のいずれかを使用します。 ::high_resolution_ Clock を使用すると、関数の実行時間を正確に測定および比較して、相対的な時間を決定できます。

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

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