【发布时间】:2013-02-17 01:39:25
【问题描述】:
我想为我的代码计时,我只想要 CPU 执行时间(忽略操作系统进程等)。
我试过time.clock(),它看起来太不精确了,每次都给出不同的答案。 (理论上,如果我再次为相同的代码 sn-p 运行它,它应该返回相同的值??)
我已经用 timeit 玩了大约一个小时。对我来说,基本上扼杀它的是“设置”过程,我最终不得不导入大约 20 个函数,这是不切实际的,因为我实际上只是将我的代码重写到设置部分以尝试使用它。
Cprofiles 看起来越来越有吸引力,但它们会返回 CPU 时间吗?还有一个小问题——它输出的信息太多了。有什么方法可以将输出的信息放入 txt 或 .dat 文件中以便我实际阅读?
干杯
操作系统:Ubuntu 程序:python 2.7
【问题讨论】:
-
请注意,每次运行都会得到不同的时间,即使您想计算仅由您的进程占用的 cpu 周期。这是因为 CPU 缓存,每次最终都会处于不同的状态(具有不同的地址空间部分)。 CPU 缓存在进程之间共享,因此您不能保证例如每次运行代码时,某个变量都会保存在缓存中。
-
resource.getrusage 可用于获取python 2.7中的处理时间
标签: python time cpu profile execution