【发布时间】:2012-02-18 20:47:27
【问题描述】:
假设我想对两个程序进行基准测试:foo.py 和 bar.py。
几千次运行以及time python foo.py 和time python bar.py 各自的平均值是否足以分析和比较它们的速度?
编辑: 此外,如果每个程序的执行时间都在亚秒以下(假设不是上述情况),那么 time 仍然可以使用?
【问题讨论】:
-
单次执行的运行时间是多久?如果小于一秒,很可能会因为精度差而产生系统误差,而且系统误差不会通过平均来消除。
-
一般来说,我首先要分析的代码的执行时间要比一秒长得多。
-
此外,即使密集代码的执行时间为亚秒级,在程序内部执行该操作一百万次左右是否会减轻系统错误?这样,
time将比较 foo 的一百万次运行与 bar 的一百万次运行。 -
同意。但是例如从 makefile 或其他 shell 脚本调用十万次的亚秒级程序可能值得分析,但单独的时间将毫无意义。
标签: linux unix profiling benchmarking