gga*_*gat 4 debugging perl profiling devel-nytprof
我完全搞不清楚杰韦利:: NYTProf报告所产生nytprofhtml.我使用旧版NYTProf 1.90.我知道这是一个非常古老的版本,但应该出于多种原因使用它.
所以这些HTML报告看起来像这样(当查看特定的*.pl文件报告时):
|Line|Stmts.| Time | Avg. |Code|
|42 | 6804 | 0.04506 | 7e-06 | }; |
Run Code Online (Sandbox Code Playgroud)
我从未见过新版本的nytprofhtml的报告,所以不确定它们是否看起来一样.
在我的情况下,这一行是整个程序中最慢的部分(它不是一个小程序).所以我的问题是如何声明这样'};' 在程序中最慢的部分有更复杂的语句.我认为误解了NYTProf的报道.
如果我的问题令人困惑,请告诉我这些报告中每列的定义,这会有所帮助吗?这将有很大帮助.
特别是我很感兴趣Stmts.意思.我猜,但我不想猜!
提前致谢.
Stmts.是执行语句的次数,或者更确切地说,是执行从与该行关联的语句(不总是准确的)移动到下一个执行的语句的次数.
Time 是执行与该行关联的语句所花费的时间的总和.
Avg.简单地Time除以Stmts.
来自当前Devel :: NYTProf文档的这些摘录可能有所帮助:
语句分析器测量输入一个perl语句和输入下一个语句之间的时间.每当执行到达新语句时,计算自进入上一语句以来的时间并将其添加到与前一语句开始的源文件行相关联的时间.[...]
例如,给定:
while (<>) {
...
1;
}
Run Code Online (Sandbox Code Playgroud)
在循环第一次之后,用于评估条件的任何其他时间(在此示例中等待输入)将被记录为已经花费在循环中执行的最后一个语句上.
NYTProf的更新版本(其中有很多版本)通过拦截适当的内部循环操作码以及许多其他重大改进,为这种情况提供了更准确的时序.
| 归档时间: |
|
| 查看次数: |
560 次 |
| 最近记录: |