Python中的算法计时

Ran*_*lue 1 python

我想计算一下我的计算机可以counter += 1在一秒钟内完成的次数.一种天真的方法如下:

from time import time

counter = 0
startTime = time()

while time() - startTime < 1:
    counter += 1

print counter
Run Code Online (Sandbox Code Playgroud)

问题time() - startTime < 1可能比这要贵得多counter += 1.

有没有办法制作一个不太"干净"的1秒算法样本?

Sve*_*ach 9

时间算法的常用方法是另一种方法:使用固定数量的迭代并测量完成它们所需的时间.进行此类计时的最佳方法是timeit模块.

print timeit.timeit("counter += 1", "counter = 0", number=100000000)
Run Code Online (Sandbox Code Playgroud)

但请注意,时间counter += 1似乎毫无意义.你想达到什么目的?

  • @Randomblue:"每秒操作数"并不是一个明确定义的概念.而Python脚本当然不是测试处理器速度的正确方法. (2认同)