关于性能:Python 3.3中的执行时间

Time of execution in Python 3.3

我读了这个主题,因为我忘记了几个月前在网上找到的方法,我不知道为什么今天我找不到它,它很简单,效果很好但是...

所以我尝试了一种方法,但我觉得它不好用,或者我5岁的电脑比今天的电脑好...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import time

debut=time.clock()

def t(n):
    aaa=[]
    b=n-1
    c=0
    if n==0 or n==1:
        return 1
    else:
        while n != 1:
            if n % 2==0:
                n=n//2
                aaa.append(n)
            else:
                n = n+b
                aaa.append(n)
    return [b,b+1]+aaa, len(aaa)+2

fin=time.clock()

print(t(100000),fin-debut)

对于n = 10.000.000,我可以在我的头脑中计算大约5个secondes,计算机总是返回3.956927685067058e-06 ...有人可以解释一下吗?

我发现的方法使用了这个from time import perf_counter as pc

我不得不返回print(pc()-t)

如果有人可以开导我,因为我真的不记得这个方法。

先感谢您


查看timeit模块,https://docs.python.org/3.0/library/timeit.html。

你会把你的东西设置成......

1
2
time = Timer("t(100000)","from __main__ import t")
print("time:", timer.timeit(number=1000))

您正在测量定义函数所需的时间。
这将测量函数的执行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import time

def t(n):
    aaa=[]
    b=n-1
    c=0
    if n==0 or n==1:
        return 1
    else:
        while n != 1:
            if n % 2==0:
                n=n//2
                aaa.append(n)
            else:
                n = n+b
                aaa.append(n)
    return [b,b+1]+aaa, len(aaa)+2

start = time.time()
value = t(100000)
end = time.time()

duration = end - start
print(value, duration)