衡量运行时最佳实践(Python)



我对评估算法复杂性相当陌生,我的任务是测量几个函数的实际运行时间。

我一直在使用time.process_time()。这是最好的方法吗?

  • 它准确吗
  • 运行时间会根据";"忙";我的笔记本电脑是?(例如,我打开了其他应用程序(
  • 还有其他更好的方法吗

选项1:分析代码以了解真实生活场景中的总体性能

这是一个很好的方法来确定在现实场景中运行功能的影响。

若要了解有关代码性能的更多信息,可以使用评测。

运行以下命令以评估功能性能:

import cProfile
cProfile.run('function()')

这会为您提供有价值的信息,例如:;总调用次数、累计时间、每个函数调用的次数以及每个函数的调用次数。

选项2:调查特殊函数调用持续时间

这是一个了解函数运行时持续时间的好方法。

使用装饰器:

from functools import wraps
from time import time
def timing(f):
@wraps(f)
def wrap(*args, **kw):
ts = time()
result = f(*args, **kw)
te = time()
print 'func:%r args:[%r, %r] took: %2.4f sec' % 
(f.__name__, args, kw, te-ts)
return result
return wrap

这样使用:

@timing
def function():
<code>

最新更新