Perl 如何阅读NYTProf html报告?

Perl 如何阅读NYTProf html报告?,perl,debugging,profiling,devel-nytprof,Perl,Debugging,Profiling,Devel Nytprof,我对由nytprofthml生成的Devel::NYTProf报告完全感到困惑。我使用的是NYTProf 1.90的旧版本。我知道这是一个非常旧的版本,但应该使用它的原因有很多 因此,这些HTML报告看起来有些奇怪 如下所示(查看特定的*.pl文件报告时): 我从未见过来自新版NYTPROFTML的报告,所以不确定它们看起来是否相同 在我的例子中,这一行是整个程序中最慢的部分(它不是一个小程序)。 所以我的问题是,这样的语句怎么能‘};’要成为程序中最慢的部分,语句要复杂得多。我想我误解了《纽约

我对由nytprofthml生成的Devel::NYTProf报告完全感到困惑。我使用的是NYTProf 1.90的旧版本。我知道这是一个非常旧的版本,但应该使用它的原因有很多

因此,这些HTML报告看起来有些奇怪 如下所示(查看特定的*.pl文件报告时):

我从未见过来自新版NYTPROFTML的报告,所以不确定它们看起来是否相同

在我的例子中,这一行是整个程序中最慢的部分(它不是一个小程序)。 所以我的问题是,这样的语句怎么能‘};’要成为程序中最慢的部分,语句要复杂得多。我想我误解了《纽约时报》的报道

如果我的问题令人困惑,请给我这些报告中每一列的定义,这会有帮助吗?这将有很大帮助

我特别感兴趣的是什么
Stmts
。意思是。我在猜,但我不想猜


提前感谢。

Stmts。
是执行语句的次数,或者更准确地说,是执行从与该行关联的语句移动到下一个执行语句的次数

Time
是执行与该行关联的语句所花费的时间总和

平均值
就是时间除以Stmts。

从中提取的这些内容可能有助于:

语句分析器测量输入一条perl语句和输入下一条perl语句之间的时间。每当执行到达一个新语句时,就会计算自输入上一个语句以来的时间,并将其添加到与上一个语句开始的源文件行关联的时间中。[……]

例如,假设:

while (<>) {
    ...
    1;
}
while(){
...
1.
}
在第一次循环之后,任何花费在评估条件上的时间(在本例中等待输入)都将被记录为已经花费在循环中执行的最后一条语句上


NYTProf的最新版本有很多,通过截取适当的内部环路操作码,为这种情况提供了更准确的计时。另外。

感谢Tim的回答和出色的工具。
while (<>) {
    ...
    1;
}