用python度量代码计时。我做错了什么?
我查找时间模块,但作为新手很难阅读它。我已经在搜索一个答案,它是测量代码的开始和结束。结果是0.0。请帮我解决这个问题。您使用时间的方式没有问题。用python度量代码计时。我做错了什么?,python,time,Python,Time,我查找时间模块,但作为新手很难阅读它。我已经在搜索一个答案,它是测量代码的开始和结束。结果是0.0。请帮我解决这个问题。您使用时间的方式没有问题。时间 打印0.0的原因是代码运行得太快,计时器根本没有改变 为了说明我的观点,我已经将您的代码循环了1000次 import time s = time.time() def insertionSort(alist): for index in range(1, len(alist)): currentvalue = alis
时间
打印0.0
的原因是代码运行得太快,计时器根本没有改变
为了说明我的观点,我已经将您的代码循环了1000次
import time
s = time.time()
def insertionSort(alist):
for index in range(1, len(alist)):
currentvalue = alist[index]
position = index
while position > 0 and alist[position - 1] > currentvalue:
alist[position] = alist[position - 1]
position = position - 1
alist[position] = currentvalue
alist = [54,26,93,17,77,31,44,55,20]
insertionSort(alist)
print (time.time() - s) # Result 0.0
输出:
import time
s = time.time()
def insertionSort(alist):
for index in range(1, len(alist)):
currentvalue = alist[index]
position = index
while position > 0 and alist[position - 1] > currentvalue:
alist[position] = alist[position - 1]
position = position - 1
alist[position] = currentvalue
for x in xrange(1000):
insertionSort([54,26,93,17,77,31,44,55,20])
e = time.time()
print (e - s)
import timeit
t = timeit.Timer("insertionSort([54,26,93,17,77,31,44,55,20])", "from __main__ import insertionSort")
time = t.timeit(1000)
print(time)
库中有一个名为timeit
的bulti,如果您对代码性能感兴趣,它在这种情况下非常有用
0.00600004196167
输出:
import time
s = time.time()
def insertionSort(alist):
for index in range(1, len(alist)):
currentvalue = alist[index]
position = index
while position > 0 and alist[position - 1] > currentvalue:
alist[position] = alist[position - 1]
position = position - 1
alist[position] = currentvalue
for x in xrange(1000):
insertionSort([54,26,93,17,77,31,44,55,20])
e = time.time()
print (e - s)
import timeit
t = timeit.Timer("insertionSort([54,26,93,17,77,31,44,55,20])", "from __main__ import insertionSort")
time = t.timeit(1000)
print(time)
它完成得太快,无法注册;尝试多次运行排序(确保在循环中初始化数组)。此外,还可以使用来衡量绩效。(或)你期待什么?是的!非常感谢Alex!