gpt4 book ai didi

c++ - 如何测量 C++ 中特定函数的运行时间{非常准确}

转载 作者:搜寻专家 更新时间:2023-10-31 00:13:50 25 4
gpt4 key购买 nike

我正在尝试用 C++ 衡量我的代码的执行情况。但这不是很准确。这是我的代码:

std::clock_t start2;
start2 = std::clock();
myFunction();
printf("time of execution: %d ms\r\n",std::clock()-start2);

但不够准确执行时间低于 10 毫秒,但结果为 10 毫秒或 0 毫秒,并且不稳定。

所以我正在寻找更准确的解决方案。有什么建议吗?

最佳答案

您可以使用 std::chrono::high_resolution_clock 来自标准 <chrono> header :它应该代表可用于实现的最准确的时钟。

示例:

#include <iostream>
#include <chrono>

int main()
{
typedef std::chrono::high_resolution_clock Clock;
auto t1 = Clock::now();
MyFunction();
auto t2 = Clock::now();
std::cout <<std::chrono::duration_cast<std::chrono::nanoseconds>(t2 - t1).count() << '\n';
}

注意事项:

  • 在为函数计时时,将运行时间考虑为时钟的 N 倍,以计算运行平均值,因为您平滑了极值点,所以它更加准确。
  • 如果你不能使用c++11, boost::chrono 是一个非常好的(并且非常接近)替代方案。

关于c++ - 如何测量 C++ 中特定函数的运行时间{非常准确},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25483620/

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