You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Mingw编译时如何用std::chrono测量C++函数执行时间

问题1:代码可用性说明

你的代码只要补全依赖头文件就可以正常使用,完全满足测试需求:

  • 缺少<iomanip>头文件引入:你代码中用到的std::setw、std::setfill均定义在该头文件中,未引入会导致MinGW编译报错,添加后即可正常编译运行。
  • 即便你不需要纳秒/微秒级精度也不影响使用:duration_cast转换为纳秒只是统一计算单位,不会带来额外的功能问题,测试场景下完全够用。

问题2:三种时钟选型建议

三种时钟的特性和适用场景区别如下,你做耗时测试优先选std::chrono::steady_clock即可:

  • std::chrono::system_clock:对应系统的本地挂钟时间,允许被系统修改,比如手动调整系统时间、NTP网络时间同步都会导致该时钟的数值跳变,甚至出现时间倒退,完全不适合用来统计程序运行的时间间隔。
  • std::chrono::steady_clock:是专门为统计时间间隔设计的单调时钟,保证只会正向增长,不会被系统时间调整影响,精度足够满足绝大多数程序耗时测试需求,Windows下MinGW的实现也非常稳定。
  • std::chrono::high_resolution_clock:是当前系统精度最高的时钟的别名,但不同平台实现规则不统一:Windows下多数MinGW版本会把它别名到steady_clock,也有少数实现会别名到system_clock,反而可能引入时间跳变的坑,稳定性不如直接用steady_clock。

内容的提问来源于stack exchange,提问作者ssd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:06:03