背景
C で特定の関数の実行時間を決定するには、パフォーマンスの分析と最適化に不可欠です。ネイティブ Linux では、時間を正確に測定するための限られたオプションが提供されており、Boost.Chrono の process_user_cpu_ Clock 関数は、関数の実行時間全体を対象とするのではなく、ユーザーの CPU 時間のみを対象としています。
より正確なソリューション
幸いなことに、C 11 には、
コード例
#include <chrono> /* Only for this example. */ #include <iostream> #include <thread> void long_operation() { /* Simulating a long, intensive operation. */ using namespace std::chrono_literals; std::this_thread::sleep_for(150ms); } int main() { using std::chrono::high_resolution_clock; using std::chrono::duration_cast; using std::chrono::duration; using std::chrono::milliseconds; auto t1 = high_resolution_clock::now(); long_operation(); auto t2 = high_resolution_clock::now(); /* Milliseconds as an integer. */ auto ms_int = duration_cast<milliseconds>(t2 - t1); /* Milliseconds as a double. */ duration<double, std::milli> ms_double = t2 - t1; std::cout << ms_int.count() << "ms\n"; std::cout << ms_double.count() << "ms\n"; return 0; }
このコード スニペットは、high_resolution_ Clock を使用して関数の実行時間を測定する方法を示しています。 long_operation 関数の継続時間。 t1 変数と t2 変数は関数の実行前後のタイムスタンプを記録し、その差はミリ秒に変換されて表示されます。
この手法を採用することで、時間に関係なく、関数の実行時間の正確で一貫した測定値を取得できます。 CPU 負荷の変動により、信頼性の高いパフォーマンス評価を保証します。
以上がC で関数の実行時間を正確に測定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。