Профилирование Java в Linux - PullRequest
3 голосов
/ 05 марта 2010

У меня довольно сложное Java-приложение, которое использует много ЦП, и мне хотелось бы узнать, есть ли какие-либо рекомендации по инструменту профиля, который я мог бы использовать для определения причины загрузки ЦП. Моя цель - определить местоположение в коде, где оно использует большую часть процессорного времени.

Ответы [ 6 ]

3 голосов
/ 05 марта 2010

Я использовал jProfiler и YourKit в Linux. Но вы можете найти нужную информацию, запустив jconsole, который поставляется с последними JDK. Хорошая информация о том, как его использовать: http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html

0 голосов
/ 07 марта 2010

Если вы используете Sun Java 6, научитесь использовать jvisualvm в JDK на машине, на которой запущена проблемная программа.

Он ответит на большинство ваших вопросов, может легко присоединиться к уже запущенной программе и является бесплатным.

0 голосов
/ 07 марта 2010

Если вам удобно с Eclipse, я бы порекомендовал TPTP .

0 голосов
/ 06 марта 2010

Я использовал Visual VM в Eclipse IDE. Если вы не в IDE, jhat и jconsole помогут. Google jhat для получения дополнительной информации

0 голосов
/ 06 марта 2010

Netbeans имеет хороший встроенный профилировщик.NB работает достаточно хорошо на Ubuntu 9.10

Если ваша проблема не может быть замечена в процессе разработки, вы можете подключить профилировщик к удаленной JVM (вашей рабочей среде).Вы должны сконфигурировать хост JVM для приема соединений JMS / JConsole от профилировщиков.Диаграммы визуализации мониторинга в реальном времени JMS / JConsole выглядят довольно круто.

0 голосов
/ 05 марта 2010

Этот метод не является высокотехнологичным, но работает лучше всего . Вот краткое объяснение почему.

Поскольку вы не работаете в IDE, вы можете использовать pstack или lsstack для получения образцов стека. Если приложение использует намного больше времени, чем должно, то, скорее всего, проблема заключается в одном или нескольких мошеннических вызовах функций, которые будут четко видны в большинстве примеров стека.

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