首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++运行时间=0

C++运行时间=0
EN

Stack Overflow用户
提问于 2020-05-29 03:52:43
回答 1查看 240关注 0票数 0

我在Visual Studio中有一个用C++编写的代码:

代码语言:javascript
复制
    auto start = std::chrono::high_resolution_clock::now();
    result = function(-1, 1, 9999999);
    auto end = std::chrono::high_resolution_clock::now();

    double time_taken = chrono::duration_cast<chrono::microseconds>(end - start).count();
    time_taken *= 1e-6;
    std::cout << "result: " << result << "time : " << fixed << time_taken << setprecision(6) << " sec" << endl;

问题是:我在发布模式下运行代码,time_taken总是等于0。当我切换到调试模式时,time_taken在1到2秒之间。我尝试了不同的方法来精确定位时间,但time_taken总是等于0。我该如何解决这个问题呢?提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-05-29 03:57:35

很明显,你的时钟分辨率不够。或者功能被部分或完全优化了。

一般来说,分析小函数并不是微不足道的。

您应该做的一件事是多次调用它,并测量整个运行的时间,然后将此时间除以调用次数。

还要确保函数在运行时通过在易失性变量中存储结果并从易失性变量中获取输入来完全计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62073396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档