时间测量 - 内部输入功能

时间:2016-12-28 10:35:58

标签: python function time

我的任务是测量一个包含内部输入的功能的时间(用户输入一个列表) 有代码:

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)

我将不胜感激任何帮助! :)

2 个答案:

答案 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)。好吗?