Что такое "неупакованные вызовы во внешнем" в Perl Devel:: DProf?

Я профилирую приложение Perl с perl -d:DProf. При запуске dprofpp в результате tmon.out файл, я получаю такие предупреждения:

Compress::Zlib::__ANON__ has 5 unstacked calls in outer
Compress::Zlib::AUTOLOAD has -5 unstacked calls in outer
  • что такое неупакованный вызов?
  • кто или что такое "внешний"?
  • что означают цифры? Как может быть отрицательное число звонков?
  • должен ли я беспокоиться?

1 ответов


Я дам этому шанс:

  • неупакованные вызовы указывают, что при анализе профиля DProf обнаружил больше (или меньше) вызовов в стеке (в профиле), чем ожидалось, что означает, что данные профилирования неверны.
  • "внешний" относится к внутренней переменной %outer в DProf, который (по-видимому) отслеживает количество стека при анализе профиля.
  • номера показывают, сколько вызовов DProf ожидается найти по сравнению с тем, сколько это найдено. 5 означает, что вызовов больше, чем ожидалось, -5 означает, что на 5 меньше. Опять же, это связано с тем, что данные профиля повреждены.
  • Я бы не беспокоился о целостности вашего кода, потому что AFAIK это связано с ошибками в реализации самого DProf. Кажется, DProf запутался при написании . Тем не менее, остальные результаты от dprofpp может быть ненадежным из-за этой неточности. Итак, вы должны беспокоиться (немного) о точности этих результаты.

вы можете посмотреть в альтернативный модуль профилирования, как Devel:: NYTProf