2008-12-16 18 views
6

我正在用perl -d:DProf分析Perl應用程序。當運行所產生的tmon.out文件dprofpp,我得到警告,這樣的:什麼是Perl的Devel :: DProf中的「外部堆棧」?

Compress::Zlib::__ANON__ has 5 unstacked calls in outer 
Compress::Zlib::AUTOLOAD has -5 unstacked calls in outer 
  • 什麼是拆散的電話嗎?
  • 誰或什麼是「外」?
  • 這些數字是什麼意思?怎麼會有負面的電話號碼?
  • 我應該擔心嗎?

回答

9

我該給一個鏡頭:

  • 取消堆棧的電話表明,當DProf正在分析配置文件,它遇到的更多(或更少)的調用堆棧(在配置文件),比預期它這意味着分析數據不正確。
  • 「外部」是指DProf中的內部變量%outer,它明顯地在分析配置文件時跟蹤堆棧計數。
  • 這些數字表示DProf預計會發現多少個呼叫與發現的呼叫數量。 5意味着有更多的呼叫比預期的多,-5意味着有更少的呼叫。同樣,這是因爲配置文件數據已損壞。
  • 我不擔心你的代碼完整性,因爲AFAIK這是由於在執行DProf本身的錯誤。看起來DProf在編寫tmon.out文件時感到困惑。但是,由於這種不準確性,dprofpp的其餘結果可能不可靠。所以,你應該擔心(一點)這些結果的準確性。

你可能想尋找到替代分析模塊,如Devel::NYTProf

+0

優秀的答案,謝謝亞當。 發佈問題後我做的第一件事就是安裝NYTProf。我不認爲我會回頭看。 也許DProf在自動加載子程序時有一點問題?我必須檢查我得到的其他警告。 – innaM 2008-12-16 19:27:52