的问候。要分析Python代码的性能,下面的代码可以做到吗?
import time
to = time.clock(); x = [];
for i in range(0,4):
x.append(i*0.1);
tend = time.clock(); print(tend-to);
to = time.clock();
y = list(map(lambda x: x*0.1, list(range(0,4))));
tend = time.clock(); print(tend-to);
计时器显示不一致。但有时,两个计时器的结果也显示出不一致性(有时第一个计时器更快,有时第二个计时器更快,但第一个计时器往往更快)。一些产出:
4.631622925399206e-05
4.4898385501326854e-05
4.9624531343562917e-05
6.852911471254275e-05
5.0569760512011734e-05
4.867930217511418e-05
3.78091667379527e-05
2.5993802132341648e-05
我的问题与上面的代码有关:
先谢谢。此致,Arief
答案 0 :(得分:1)
>>> import timeit
>>> timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
0.3018611848820001
>>> timeit.timeit('"-".join([str(n) for n in range(100)])', number=10000)
0.2727368790656328
>>> timeit.timeit('"-".join(map(str, range(100)))', number=10000)
0.23702679807320237
换句话说:如果我们努力谈论执行时间测量的精确度 - 我们限制迭代一个简单的函数数千次以引起所有副作用。