我从同事程序员那里收到了以下脚本:
from time import *
start = strptime(asctime())
end = strptime(asctime())
print 'you took %i minutes' % (end[4] - start[4])
您可能已经知道,该脚本会测量第三行和第四行之间的时间。但是,它似乎在几分钟内就可以衡量它。我怎样才能在几秒钟内测量它,至少有一个小数位(例如7.4秒)。
另外,我想添加一个额外的功能。假设脚本运行,程序要求我输入任何单词。在我输入结束时,我必须按回车键退出程序并测量从第一次按键到我按下回车的那一刻的时间。我该怎么做呢?
答案 0 :(得分:12)
首先,我会避免使用import *
因为它被认为是不好的做法。您可以使用time.time()来获得更高的精确度:
>>> import time
>>> start = time.time()
>>> end = time.time()
>>> end - start
5.504057168960571
您也可以使用datetime.datetime.now()。
答案 1 :(得分:2)
#source: http://docs.python.org/library/timeit.html
def test():
"""Stupid test function"""
L = []
for i in range(100):
L.append(i)
if __name__ == '__main__':
from timeit import Timer
t = Timer("test()", "from __main__ import test")
print t.timeit()
答案 2 :(得分:0)
如果您正在尝试优化python Web服务调用,则可以执行以下操作。
import time
在功能的开头,右边
start = time.time()
行中的(540是行号),
l540 = time.time()
print("--------l541 ------------")
print(l540 - start)
在下一行put(608是行号),
l608 = time.time()
print("-------- 609 ------------")
print(l608 - l540)
您可以添加任意数量的内容,它会告诉您程序在哪里花费时间。