我对评估算法复杂性相当陌生,我的任务是测量几个函数的实际运行时间。
我一直在使用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>