LINUX.ORG.RU

Посоветуйте средство профилировния для java-приложения

 , , , ,


0

4

Есть многопоточное java-приложение, использующее много ядер, но использующее их неравномерно. Какие-то ядра в top выглядят загруженными на 99%, а какие-то простаивают. Мне бы хотелось посмотреть, какой конкретно модуль этой программы в данный конкретный момент на каких ядрах выполняется. Можно ли увидеть связь конкретных элементов кода с конкретными ядрами, сокетами?

Вопрос: посоветуйте профайлер, IDE, etc., которые могут предоставить такую информацию. Может быть, что-то из этого работает в консоли?

Deleted

В нетбинсе встроенный хорош, с оракловой jdk идёт jvisaulvm, который подключается к запузенному процессу.

GblGbl ★★★★★ ()

Java Mission Control. Идет с JDK, имхо удобнее, чем visualvm. Там можно фильтры и группировки настраивать.

Deleted ()
Ответ на: комментарий от ii8_

Да платный он же. Зачем платить, если есть бесплатный mission control?

Deleted ()
Ответ на: комментарий от Deleted

А как у него с поддержкой Java 6, на сайте Оракла сказано, что поддерживается ограниченное подмножество функций. Это как?

hippi90 ★★★★ ()
Ответ на: комментарий от hippi90

А как у него с поддержкой Java 6

Если JVM — JRockit, то полная. Он же изначально Ораклом для их JRockit'а разрабатывался. Насколько он Hotspot 6-ой версии поддерживает я не знаю.

Deleted ()
Ответ на: комментарий от ii8_

Не спорю, если цена имеет значение.

Да даже если бы она не имела значение, что такого особенного Yourkit умеет? Чего бы не умел Mission control? За что там платить?

Deleted ()
Ответ на: комментарий от Deleted

Производительность, продуманный UI, гибкость, интеграция с IDE, тёмная тема оформления, что не маловажно.
А вообще, ты запусти - посмотри сам.

ii8_ ★★★★ ()
Ответ на: комментарий от ii8_

Я-то запускал. Я все профайлеры пробовал и бесплатные, и платные. Единственное, с чем могу согласится, это продуманный интерфейс. Всё-таки в JMC он слегка неудобный. А остальное, уж увольте. Yourkit нихрена не быстрее остальных. Интеграция с IDE примитивная, ну есть у тебя теперь кнопка запустить в профайлере, ну можешь ты в код прыгнуть из него и что? Я с таким же успехом могу конфигурацию запуска создать и вручную. Тёмная тема не преимущество, а просто дань моде.

Вот в чем JMC выигрывает, так это в удаленном профилировании, т.н. flight recording. Оверхед минимальный, ты сам выбираешь, что тебе нужно записать. Фича официальная, включается одной опцией. Не нужно левые агенты подключать, которые могут тебе jvm уронить, да еще с закрытыми исходниками. Я посмотрю как ты будешь ловить плавающий баг с ООМ, который не возпроизвести на своей девелоперской тачке, с помощью Yourkit'а. Plumbr не предлагать.

Deleted ()
Ответ на: комментарий от Deleted

Я все профайлеры пробовал и бесплатные, и платные.

Очень нужен бесплатный и консольный. Знаю только hprof. Не везде можно графику пробросить через промежуточные компьютеры.

Deleted ()
Ответ на: комментарий от Deleted

Вот в чем JMC выигрывает, так это в удаленном профилировании, т.н. flight recording

Можно ли, используя JMC, собрать данные на удаленной системе в файл профиля, и потом это профиль перекинуть на рабочую станцию, чтобы его открывать с помощью JMC или чего-то иного?

Deleted ()
Ответ на: комментарий от Deleted

Можно ли, используя JMC, собрать данные на удаленной системе в файл профиля, и потом это профиль перекинуть на рабочую станцию, чтобы его открывать с помощью JMC или чего-то иного?

Можно. Нужно только включить на удаленной системе в виртуальной машине flight recorder. Потом можно подключиться удаленно или же путем добавления опций командной строки включить запись. http://www.oracle.com/technetwork/java/javaseproducts/mission-control/java-mi...

Очень нужен бесплатный и консольный. Знаю только hprof. Не везде можно графику пробросить через промежуточные компьютеры.

Ну да, hprof это первое, что в голову приходит. Если нужно память профилировать, можно просто дамп кучи сделать через jmx и слить на рабочую тачку.

Deleted ()
Ответ на: комментарий от Deleted

можно просто дамп кучи сделать через jmx

и тогда я получу файл *.hprof, который, в отличии от *.jfr, может быть открыт уже значительно большим диапазоном профайлеров, правильно?

Deleted ()
Ответ на: комментарий от Deleted

Вот в чем JMC выигрывает, так это в удаленном профилировании, т.н. flight recording.

С помощью

-XX:+FlightRecorder -XX:FlightRecorderOptions=<my options>
получил файлы *.jfr. Это оно? Открываю с помощью jmc. Если оно, и это официальная фича, то может ли какой-то профайлер (пусть платный, yourkit или другой) открыть файл *.jfr лучше, чем бесплатный jmc? Под словом «лучше» я подразумеваю более глубокую детализацию чего бы то ни было.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

и тогда я получу файл *.hprof, который, в отличии от *.jfr, может быть открыт уже значительно большим диапазоном профайлеров, правильно?

Да

может ли какой-то профайлер (пусть платный, yourkit или другой) открыть файл *.jfr лучше, чем бесплатный jmc? Под словом «лучше» я подразумеваю более глубокую детализацию чего бы то ни было.

Нет, jfr открывает только jmc. Ты б сказал, что конкретно ты смотришь. Настрой детализацию в профиле, экспортни в xml и скорми удаленной ВМ.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.