Какой профилировщик лучше подходит для профилирования общего назначения и анализа кучи? 90% наших приложений представляют собой автономные программы командной строки со значительной базой данных и числовой обработкой. Остальные 10% - это приложения-контейнеры веб-приложений / сервлетов (с очень небольшим количеством JSP и БЕЗ СКРИПЛЕТОВ!). Целевым пользователем будет старший инженер-программист с 5-10-летним опытом работы в отрасли. Нам нужна поддержка только для Sun JDK 5 и.
На момент написания этого вопроса (2008-10-02) JProfiler был на 5.1.4, а YourKit - на 7.5. Похоже, скоро выйдет YourKit 8.0.




Если вы используете jdk> = 1.6_07, вы также можете посмотреть jvisualvm, который поставляется в комплекте.
Для профилирования общего назначения отлично подходит jvisualvm. никаких дополнительных построек или настроек или чего-то еще, просто прикрепите и работайте. Однако как только вы что-то найдете, вам, возможно, придется перейти в одно из этих других приложений, чтобы получить более подробное описание.
В чем разница между jvisualvm и VisualVM?
@raffian: Думаю, нет. jvisualvm - это просто имя двоичного файла.
Для быстрого и грязного профилирования программ командной строки очень хорошо работает JIP.
Я использовал только JProfiler (и немного JProbe). Насколько я могу судить, одним из ограничений YourKit является то, что они не поддерживают JDK 1.4.2. Для многих это не проблема, но может быть.
Я использовал yourkit на 1.4.2. поддерживает его НО НЕ ТАК ХОРОШО как 1.5.x
Я использовал yourkit, и это хороший профилировщик очень, лучший из тех, что я когда-либо использовал в java (за эти годы я использовал множество других). при этом я никогда не использовал jprofiler, поэтому я не могу дать прямого сравнения.
Пользуюсь JProfiler много лет и очень им доволен. IntelliJ, кажется, переключает свои рекомендации между YourKit и JProfiler, поэтому я предполагаю, что их наборы функций похожи. Я считаю, что у них обоих есть пробная версия.
Я использовал как JProfiler 4, так и YourKit 7.5, и YourKit безоговорочно выигрывает. Он намного менее агрессивен, чем JProfile, в том смысле, что я буду рад запускать производственные серверы с установленным агентом YourKit, чего я бы никогда не стал делать с JProfiler.
Кроме того, инструмент анализа, поставляемый с YourKit, более интуитивно понятен (на мой взгляд), что упрощает определение первопричины проблем.
Будьте очень осторожны при покупке YourKit. Одна лицензия была куплена нашей учетной записью, и она ввела свой адрес электронной почты. Они не позволили бы использовать программатор, который был куплен, потому что он мог использоваться только покупателем. Еще одну лицензию использовал разработчик из Литвы, который летом работал в Украине. Они отозвали у него лицензию на использование в 2 странах. Будь очень осторожен
+1 для yourkit --- использование 7.0 на устройствах разработки в windows
какое-то время не использовал JProfiler - комментировать не могу, так как за это время они могли быть улучшены.
Это сравнение "jprofiler или yourkit". Как вы можете проголосовать за свой набор, если, как вы сказали, не знакомы с jprofiler?
@rafalmag: Я сказал, что давно не использовал JProfiler (я не говорил, что никогда им не пользовался). В то время, когда я сделал этот комментарий, я прочитал несколько обзоров, в которых сравнивались оба профилировщика.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Альтернативный ответ.
у них есть различные продукты для производственного мониторинга / профилирования, В отличие от других инструментов, которые в основном разрабатываются: http://www.jinspired.com/products/jxinsight/
Это сообщение на сервере JDBInsight: http://www.theserverside.com/news/thread.tss?thread_id=13488
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я НЕ связан с этой компанией ни на каком уровне.
Кстати, вы можете рассмотреть профилировщик Netbeans - он довольно хорош. Но я не использовал ни один из двух, о которых вы упомянули.
Я использовал YourKit. Я не использовал JProfiler. Раньше я использовал OptimizeIt. У меня очень хорошее мнение о YourKit. Это очень стабильный и хороший графический интерфейс и хороший список функций. Одна уникальная особенность, которую я заметил, - это профилирование ЦП с временем ожидания и без него (например, с ожиданиями ввода-вывода), включая.
Цена тоже очень разумная (я думаю, около 1100 долларов за 5 лицензий).
Я широко использовал JProbe, OptimizeIt и YourKit, и все они подходящие инструменты. Из трех наиболее любимым мне является YourKit.
Одна убийственная особенность JProbe - это возможность переходить от снимка производительности к аннотированному источнику (со счетчиками и таймингами). Я обнаружил, что это исключительно полезно.
YourKit великолепен. Вы также можете проверить профилировщик, встроенный в NetBeans - это довольно круто.
Yourkit Это низкие накладные расходы, стабильная, простая в установке на JVM для профилирования (всего одна dll) и мощная. Для анализа дампа кучи это единственный профилировщик, который приближается к Анализатор памяти Eclipse.
Ни один из инструментов, кроме JXInsight, не выполняет реального анализа транзакций базы данных:
http://www.jinspired.com/products/jxinsight/concurrency.htmlhttp://www.jinspired.com/products/jxinsight/olapvsoltp.html
Технология JXInsight Probes также является единственной, которая может даже работать в производственной среде, учитывая, что мы выполняем профилировщик netbeans в 20 раз, а yourkit - в 100 раз в тестах SPECjvm2008.
http://blog.jinspired.com/?p=272
Я являюсь архитектором JXInsight, поэтому, конечно, я полностью предвзят, но в то же время я, вероятно, более квалифицирован, чем большинство в индустрии Java, чтобы сделать такое заявление, поскольку последние 8 лет я посвятил анализу производительности некоторых из самых требовательность приложения Java / J2EE в производстве.
Следует отметить, что JXInsight разработан для инженеров по производительности программного обеспечения, а не только для периодических сеансов специального профилирования. У нас есть более 4000 системных свойств для настройки среды выполнения и более 600 библиотек технологических расширений, поэтому это может быть излишним, если у вас нет сложной проблемы, которую нужно решить, и / или использование одного и того же инструмента для разработки, тестирования и производства имеет первостепенное значение.
С уважением,
Уильям
Я использую JProfiler, и в целом все нормально. Тем не менее, эта функция "динамического инструментария" ужасно предвзята для небольших методов.
Я использую профилировщик TPTP. лучшая особенность, которую он имеет, это то, что его можно очень легко интегрировать в Eclipse, но плохо то, что это замедляет работу Eclipse.
Определенно YourKit ... Он смог открыть дамп на 4 гигабайта с использованием всего лишь 1 грамма кучи. В то время как Jprofiler с таким же распределением кучи разбился!
Я использовал оба, и теперь мой голос определенно JProfiler (в текущей версии 6), так как он проще в использовании и имеет множество полезных дополнительных функций. В предыдущих выпусках YourKit имел некоторые преимущества при работе со снимками большего размера, но теперь этого больше нет.
Недавно использовав JProfiler и Yourkit, я обнаружил, что yourkit намного лучше подходит для анализа проблем с памятью, и сильно предпочитаю jprofiler для анализа производительности. Анализ памяти Yourkit кажется намного проще и интуитивно понятен. Что касается анализа производительности на вашем наборе, мне не удалось разрешить какие-либо проблемы с производительностью, которые я пытался решить с помощью вашего набора. JProfiler показывает более точную и краткую информацию для анализа производительности с точным количеством вызовов методов и процентом времени, затраченного на каждый метод. Я еще не нашел этого в вашем наборе. Кажется, yourkit просто дает выборочную информацию, которая не является точной, если вы не измеряете тысячи вызовов.
Не уверен, было ли это возможно в 2010 году, в YourKit 12 есть функция трассировки в дополнение к выборке, которая выполняет свою работу. Лично он превосходит VisualVM, потому что он анализирует время, затрачиваемое на сгенерированные во время выполнения объекты, такие как сопоставители myBatis на основе аннотаций.
В Java 7 Update 40 Oracle включил Управление полетами Java (первоначально часть JRockit JDK) - очень мощный инструмент настройки производительности, который может конкурировать с yourkit / jprofiler.
Взгляните и удивитесь.
Определенно YourKit. Он самый интуитивно понятный и стабильный!
Взгляните на jvisualvm в Java 6 u 10, который может быть начальным вариантом для отдельного разработчика, прежде чем использовать большие молотки профилировщика.