2

我正在寻找一种方法来测量 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 中实现这一点?

4

1 回答 1

4

resource模块house getrusage它应该允许您分别检索用户、系统和挂钟时间,就像time命令一样。

于 2013-10-06T01:58:26.780 回答