我的任务是测量一个包含内部输入的功能的时间(用户输入一个列表) 有代码:
VirtualDisplay
当然它没有优化(但现在情况并非如此) 因为"列表"标准方式我的意思是:
import numpy
import itertools
def amount(C):
N = numpy.array(input().strip().split(" "),int)
N = list(N)
N = sorted(N)
while C < max(N):
N.remove(max(N))
res = []
for i in range(1, C):
for j in list(itertools.combinations_with_replacement(N, i)):
res.append(sum(list(j)))
m = 0
for z in range (0, len(res)):
if res[z] == C:
m += 1
if N[0] == 1:
return m + 1
else:
return m
不起作用。
我该如何衡量时间?例如:
import time
start = time.time()
amount(10)
end = time.time()
print(end - start)
我将不胜感激任何帮助! :)
答案 0 :(得分:1)
你想要这样的事情吗?
import time
# measure process time
t0 = time.clock()
amount(10)
print time.clock() - t0, "seconds process time"
# measure wall time
t0 = time.time()
amount(10)
print time.time() - t0, "seconds wall time"
更新:洗液可能是这样的:
times=[]
for x in range(12):
t0 = time.time()
amount(x)
times.append( time.time() - t0);
或更好,如果您使用timeit:here
答案 1 :(得分:0)
您如何看待这个:
import time
def time_counter(amount, n=100, M=100):
res = list(range(n))
def count_once():
start = time.perf_counter()
amount(res)
return time.perf_counter() - start
return [count_once() for m in range(M)]
使得M = 1000次测量并且C在范围内(0,n)。好吗?