分析和不分析时的 NYTProf 执行时间
Posted
技术标签:
【中文标题】分析和不分析时的 NYTProf 执行时间【英文标题】:NYTProf execution time when profiling and when no profiling 【发布时间】:2014-01-21 10:13:00 【问题描述】:只是,想确认一下。
我有一个测量程序执行时间的小python脚本,它只是在外部程序启动之前节省时间,然后在程序结束执行后减去这个值。
在 perl 脚本上运行此脚本时,它显示执行时间为 0.49263,当使用 NYTProf 运行相同的脚本并查看由 nytprofhtml 生成的 HTML 报告时,我可以看到执行时间为 0.80784,几乎是两倍。
这样好吗?我想分析应该会增加执行时间,但会增加多少?
【问题讨论】:
【参考方案1】:这是正常的,因为 Devel::NYTProf 需要查看每个语句(和块等)。它需要为每个语句将分析数据写入磁盘。这样做的成本相当高。这就是为什么你不应该在生产环境中运行它。
documentation 中有一些关于如何使其运行更快的信息。
如果你在 linux 命令行上运行,则不需要任何其他程序来获取命令的执行时间。只需在 shell 上执行此操作:
$ time perl foo.pl
【讨论】:
好的。当然,它有它自己的成本。但是 NYTProf 知道它自己的工作花费了多少时间(在磁盘上写入数据,测量时间,等等)并且知道目标/分析程序花费了多少时间。这样就可以将自己使用的时间和程序实际使用的时间分开。以上是关于分析和不分析时的 NYTProf 执行时间的主要内容,如果未能解决你的问题,请参考以下文章
使用 NYTProf 对 foswiki 进行剖析会导致剖析数据不完整