是否有bash命令或Python库来计算执行文件/命令的时间?我希望能够决定哪种语言最适合某项任务,或者有一种方法可以确定Python代码A的运行速度比Python代码B快。如果有办法这样做,但这个问题不在话题,请用搜索字词或其他资源发表评论。
答案 0 :(得分:3)
是的,它被称为time
命令。与time command arg1 arg2 arg3
中一样。
输出3个字段,如下所示:
real 0m0.631s
user 0m0.154s
sys 0m0.458s
第一个是实际的挂钟时间。第二个是程序在用户空间中花费的时间。第三个是程序在内核空间中花费的时间。
答案 1 :(得分:2)
您可以使用timeit:
from timeit import timeit
print timeit("function_2(arg)", "from __main__ import function_2, arg", number=5)
注意事项:
from __main__ import function, arg
为timeit
模块提供对脚本中函数和变量的访问权。number
次运行的总和...而不是平均值(抓住我一次......)。答案 2 :(得分:1)
time
例如:
time ls -a
列出文件后给出
real 0m0.240s
user 0m0.002s
sys 0m0.004s
在资源方面有很多选项可供跟踪。有关详细信息,请参见手册页。
答案 3 :(得分:0)
python -m timeit "setup" "code"
如果你想为Python代码计时。适用于快速和肮脏的性能基准测试。
答案 4 :(得分:0)
我使用这个片段,我在网上找到了一些我不记得的片段:
import atexit
import time
def secondsToStr(t):
return "%d:%02d:%02d.%03d" % \
reduce(lambda ll,b : divmod(ll[0],b) + ll[1:],
[(t*1000,),1000,60,60])
line = "="*40
def log(s, elapsed=None):
print line
print secondsToStr(time.clock()), '-', s
if elapsed:
print "Elapsed time:", elapsed
print line
print
def endlog():
end = time.clock()
elapsed = end-start
log("End Program", secondsToStr(elapsed))
def now():
return secondsToStr(time.clock())
start = time.clock()
atexit.register(endlog)
log("Start Program")