我正在寻找一种方法来测量 Python 中的函数性能,将挂钟和 CPU 时间分开。
我研究了python分析器,但它们似乎旨在扫描程序而不是单独的函数。从http://docs.python.org/2/library/profile.html:
注意分析器模块旨在为给定程序提供执行配置文件,而不是用于基准测试目的(为此,有 timeit 以获得合理准确的结果)。这尤其适用于针对 C 代码对 Python 代码进行基准测试:分析器会为 Python 代码引入开销,但不会为 C 级函数引入开销,因此 C 代码似乎比任何 Python 代码都快。
然后我尝试了 timeit 模块:http ://docs.python.org/2/library/timeit.html ,但它似乎不支持 CPU 和挂钟时间的分离。据我了解,它只是测量总运行时间。
我正在寻找的是这样的:
$ time python yourprogram.py
real 0m1.028s
user 0m0.001s
sys 0m0.003s
但不是从命令行调用它,我需要从 python 代码调用它。
R中的system.time()之类的东西:
print(system.time(replicate(repeats, factorialRecursive(150))))
user system elapsed
0.041 0.001 0.041
如何在 Python 中实现这一点?