函数运行时长跟踪疑问:duration<double, milli>返回值及相关问题
你的两个问题,我来一步步拆解
第一个问题:time_span.count()的返回值到底是什么?
先看你代码里的关键定义:
duration<double, milli> time_span = t2 - t1;
这是C++标准库的时间间隔类型,拆解来看:
- 第一个模板参数
double:表示用浮点数存储时间数值,支持小数级的精度 - 第二个模板参数
milli:这是时间单位标记,指定这个duration的基准单位是毫秒(millisecond)
所以time_span.count()返回的是以毫秒为单位的时间间隔值,类型是double。比如它返回4.0的话,实际耗时是4毫秒,不是4秒——这正好能解释你的第二个疑问!
第二个问题:为什么显示“4秒”但实际感觉程序更快?
核心原因就是单位误解:你把输出的毫秒数值当成了秒。如果程序输出的是4,那实际只花了4毫秒,这和你觉得“运行更快”的直观感受完全匹配。
另外补充两个小细节帮你理解:
high_resolution_clock是C++里精度最高的时钟实现,不同平台(Windows/Linux/macOS)的底层实现可能有差异,但毫秒级的计时是完全可靠的- 如果你的
count值不算特别大,prepend操作本身是很高效的,几毫秒完成完全合理,不会有明显的卡顿感
内容的提问来源于stack exchange,提问作者Hooch
相关产品推荐
相关产品推荐

