gpt4 book ai didi

c++ - 在 C++ 中获得准确的执行时间(微秒)

转载 作者:IT老高 更新时间:2023-10-28 12:46:31 30 4
gpt4 key购买 nike

我想在用 C++ 实现的程序的微秒内获得准确的执行时间。我曾尝试使用clock_t 获取执行时间,但它不准确。

(请注意,微基准测试是困难。准确的计时器只是为短时间区域获得有意义的结果所必需的一小部分。请参阅 Idiomatic way of performance evaluation? 了解一些更一般的警告)

最佳答案

如果您使用的是 c++11 或更高版本,则可以使用 std::chrono::high_resolution_clock

一个简单的用例:

auto start = std::chrono::high_resolution_clock::now();
...
auto elapsed = std::chrono::high_resolution_clock::now() - start;

long long microseconds = std::chrono::duration_cast<std::chrono::microseconds>(
elapsed).count();

此解决方案具有便携性的优点。


请注意,微基准测试很难。很容易测量错误的东西(比如你的基准优化掉了),或者在你的计时区域中包含页面错误,或者没有考虑 CPU 频率空闲与 turbo。

Idiomatic way of performance evaluation?对于一些一般提示,例如通过首先测试另一个来进行健全性检查,看看是否会改变哪个更快。

关于c++ - 在 C++ 中获得准确的执行时间(微秒),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21856025/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com