C 関数のベンチマークを実行するには、次の手順を実行できます。 タイミング ツール (std::chrono ライブラリなど) を使用して、実行時間を測定します。コードを実行し、実行時間を返すベンチマーク関数を作成します。統計の収集や比較などの高度な機能のためにベンチマーク ライブラリを活用します。
#C 関数のパフォーマンスをベンチマークする方法
ベンチマークは、コードのパフォーマンスを測定し、さまざまな実装を比較するための重要な手法です。 C では、次の方法で関数のパフォーマンスをベンチマークできます:1. タイミング ツールの使用
C はstd::chrono を含むライブラリを提供します。時間を測る授業。
std::chrono::high_resolution_ Clock を使用して高精度のタイミングを取得できます:
#include <chrono> using namespace std::chrono; auto start = high_resolution_clock::now(); // 待测试代码 auto end = high_resolution_clock::now();
2 ベンチマーク関数を作成します。テストするコードを実行し、実行時間を返す関数: #include <chrono>
using namespace std::chrono;
double benchmark(int n) {
auto start = high_resolution_clock::now();
// 待测试代码
auto end = high_resolution_clock::now();
return duration_cast<duration<double>>(end - start).count();
}
より多くの機能を提供するさまざまな C ベンチマーク ライブラリもあります。統計の収集や比較などの高度な機能。以下に、人気のあるライブラリをいくつか示します。
[ベンチマーク](https://github.com/google/benchmark)[boost::benchmark](https://www . boost.org/doc/libs/1_65_1/libs/benchmark/doc/html/index.html)検索関数のベンチマークを行いたいとします。 find_element():
#include <chrono> #include <vector> using namespace std::chrono; double find_element_benchmark(size_t n) { // 生成一个包含 n 个元素的数组 std::vector<int> arr(n, 0); // 查找一个不存在的元素 auto start = high_resolution_clock::now(); auto pos = std::find(arr.begin(), arr.end(), -1); auto end = high_resolution_clock::now(); if (pos != arr.end()) return -1; // 仅在元素找到时返回 -1 return duration_cast<duration<double>>(end - start).count(); } int main() { // 多次测试不同数组大小 for (size_t n = 1000; n <= 1000000; n *= 10) { // 运行基准测试 double time = find_element_benchmark(n); // 打印结果 std::cout << "数组大小: " << n << "\t执行时间: " << time << " 秒" << std::endl; } return 0; }
以上がC++ 関数のパフォーマンスをベンチマークするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。