Профилирование классов проекта в одиночку с использованием asm jar - PullRequest
0 голосов
/ 08 марта 2012

Я новичок в профилировании. Я использую ASM для создания профилировщика.Профилировщик при запуске дает также имя класса включенного jar.Но мне нужны детали только моих классов проекта.Я получил код от

http://www.ibm.com/developerworks/java/library/j-jip/#icomments

Ответы [ 2 ]

2 голосов
/ 08 марта 2012

Вам придется создать фильтр для классов, которые вы хотите преобразовать самостоятельно.

Просто проверьте, например, начинается ли имя класса с "com / yourcompany /" и оставьте все остальные классы в покое.

Поскольку вы пишете профилировщик, вы, кажется, создали агента.Метод transform этого агента также передает ClassLoader с данными класса.Я не уверен, но, возможно, вы также можете использовать это свойство для фильтрации или проверить загрузчик классов на предмет источника ресурса, если это возможно.

1 голос
/ 08 марта 2012

Я пробовал VisualVM, но он не очень полезен для высокопроизводительных приложений, так как полностью написан на Java и не очень эффективен. (т. е. если он менее эффективен, чем приложение, его мониторинг, вы видите VisualVM как крупнейшего потребителя ЦП или памяти)

VisualVM использует подход, который вы пытаетесь. ;)

Я использую YourKit и считаю, что это полезно для обычных проблем, и этого может быть достаточно для вас. Он имеет возможность включать и выключать профилирование из кода, чтобы включать только определенные разделы кода. Это более эффективно, поскольку вся работа по профилированию выполняется в собственном агенте, поэтому он не использует собственную кучу и не сильно замедляет работу приложения.

Когда Yourkit недостаточно для программирования с малой задержкой, я пишу специальные тесты производительности и сам определяю время приложения на ключевых этапах приложения, которое я регистрирую максимально эффективно. Этот подход достаточно легкий, его можно использовать в работающей системе и позволяет увидеть, что происходит в производственной системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...