【发布时间】:2012-11-01 07:55:27
【问题描述】:
在我的程序的顶部和末尾,我使用clock() 来计算我的程序需要多长时间才能完成。不幸的是,它的报告时间似乎只有一半。我用“时间”命令仔细检查了这一点。
我的程序报告: 45.86s 完成
时间命令报告: 真正的 0m22.837s 用户 0m45.735s 系统 0m0.152s
用我的手机计时,它在 23 秒内完成(又名:“真实”时间)。 “用户”时间是所有线程的总和,因为我使用的是 OpenMP,所以这很有意义。 (你可以在这里阅读:What do 'real', 'user' and 'sys' mean in the output of time(1)?)
那么,为什么 clock() 在“用户”时间而不是“实时”时间报告?我应该使用不同的函数来计算我的程序运行了多长时间?
附带说明,Windows 的 clock() 按预期工作并“实时”报告。
【问题讨论】:
-
C++ 不属于问题的标题。而且,当您提出问题时,这与 C++ 没有太大关系。