评估函数不同参数的性能

Evaluate the performance for different parameter of a function

我想知道一组参数如何影响函数的性能f。 我这样做是为了存储参数的执行时间:

ListOfParam=[param1,param2,param3]
Time=[]
for param in ListOfParam:
    start=time.time()
    f(param) 
    end=time.time()
    Time.append(end-start)

我现在很担心执行param1会不会影响执行 param2 的时间,因为某些 param 会使用我计算机的多个 CPU。如何让所有 param 公平?

您需要使用timeit Python模块。您可以阅读文档 here, and look the examples here。使用这个模块比实现你自己的定时器更好,因为 timeit handle:

  • Python 的垃圾收集器,通过在不合时宜的时刻安排收集 运行 来防止该进程扭曲结果。
  • 它会为您的 OS、time.timetime.clock 选择最准确的计时器。
  • 它会多次重复测试,以消除其他任务对您机器的影响,例如磁盘刷新和 OS 调度。

另外:IPython 包含用于此目的的 %timeit 魔法函数 (source)。