在Perl的Devel :: DProf中,什么是“外部的未堆叠呼叫”?

时间:2008-12-16 16:31:05

标签: perl profiling profiler

我正在使用perl -d:DProf分析Perl应用程序。在生成的dprofpp文件上运行tmon.out时,会收到以下警告:

Compress::Zlib::__ANON__ has 5 unstacked calls in outer
Compress::Zlib::AUTOLOAD has -5 unstacked calls in outer
  • 什么是未分组的电话?
  • 谁或什么是“外”?
  • 这些数字是什么意思?怎么会有负数的电话?
  • 我应该担心吗?

1 个答案:

答案 0 :(得分:9)

我会试一试:

  • 未堆栈的调用表明当DProf分析配置文件时,它在堆栈(在配置文件中)遇到的调用次数比预期的要多(或者更少),这意味着分析数据不正确。
  • “outer”是指DProf中的内部变量%outer,它(显然)在分析配置文件时跟踪堆栈计数。
  • 这些数字表示DProf预计会发现多少次呼叫,而不是多少次呼叫。 5表示呼叫多于预期,-5表示减少5个。同样,这是因为配置文件数据已损坏。
  • 我不担心你的代码完整性,因为AFAIK这是由于DProf本身的实现中的错误。在撰写tmon.out文件时,DProf似乎感到困惑。但是,由于这种不准确性,dprofpp的其余结果可能不可靠。所以,你应该担心(一点点)这些结果的准确性。

您可能需要查看备用性能分析模块,例如Devel::NYTProf