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 ヘッダーを含めて、次の手順に従います。
void timed_function() { // Your code to execute }
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 サイトの他の関連記事を参照してください。