Какой профилировщик Java лучше: JProfiler или YourKit?
Какой профилировщик лучше подходит для профилирования общего профиля и анализа кучи? 90% наших приложений являются автономными программами командной строки с существенной обработкой базы данных и числовых данных. Другие 10% - приложения webapps/servlet container (с очень маленькими JSP и NO SCRIPLETS!). Целевым пользователем будет инженер программного обеспечения Sr с 5-10-летним опытом работы в отрасли. Нам нужна поддержка только для Sun JDK 5 и.
Как писал этот вопрос (2008-10-02), JProfiler был в 5.1.4, а YourKit - 7.5. Похоже, что YourKit 8.0 скоро выйдет.
Ответы
Ответ 1
Я использовал как JProfiler 4, так и YourKit 7.5, а YourKit побеждает. Он настолько менее инвазивен, чем JProfile, так как я буду счастлив запустить серверы с установленным агентом MyKit, что я никогда не буду делать с JProfiler.
Кроме того, инструмент анализа, который поставляется с YourKit, более интуитивно понятен (на мой взгляд), что облегчает получение основной причины проблем.
Ответ 2
Если вы находитесь на jdk >= 1.6_07, вы также можете посмотреть на jvisualvm, который поставляется в комплекте.
Ответ 3
Недавно я использовал и JProfiler и Yourkit, и обнаружил, что yourkit намного превосходит анализ проблем с памятью и настоятельно предпочитает jprofiler для анализа производительности. Анализ памяти Yourkit кажется намного проще и интуитивно понятным. Для анализа производительности на yourkit я не увенчался успехом при решении любой проблемы с производительностью, которую я пытался решить с помощью yourkit. JProfiler показывает более точную и краткую информацию для анализа производительности с точным количеством вызовов метода и процентом времени, затрачиваемого на каждый метод. Я еще не нашел это в твоих руках. Кажется, yourkit просто дает информацию для выборки, которая не точна, если вы не измеряете тысячи вызовов.
Ответ 4
Ни один из инструментов, кроме JXInsight, не выполняет реальный анализ транзакций базы данных:
http://www.jinspired.com/products/jxinsight/concurrency.html
http://www.jinspired.com/products/jxinsight/olapvsoltp.html
Технология JXInsight Probes также является единственной, которая может даже запускаться в производстве, учитывая, что мы выполняем профилирование netbeans на 20x и yourkit 100x в тестах SPECjvm2008.
http://blog.jinspired.com/?p=272
Я архитектор JXInsight, поэтому, конечно, я полностью предвзятый, но в то же время я, вероятно, более квалифицирован, чем большинство в отрасли Java, чтобы сделать такое выражение, поскольку я посвятил последние 8 лет анализу производительности для некоторых из самых требовательных приложений Java/J2EE в производстве.
Я должен указать, что JXInsight предназначен для инженеров по разработке программного обеспечения, а не только для случайного сеанса профилирования adhoc. У нас более 4000 системных свойств для настройки среды исполнения и 600+ расширений технологий, поэтому может быть излишним, если у вас есть сложная проблема для решения и/или использования одного и того же инструмента для разработки, тестирования и производства.
С уважением,
Уильям
Ответ 5
Я широко использовал JProbe, OptimizeIt и YourKit, и все они способные инструменты. Из 3, мой любимый любимый - YourKit.
Единственная функция убийцы в JProbe - это способность переходить от моментального снимка к аннотированному источнику (с подсчетами и таймингами). Я нашел это исключительно полезным.
Ответ 6
Я использовал оба, и мой голос теперь определенно JProfiler (в текущей версии 6), поскольку он проще в использовании и имеет много полезных дополнительных функций. В предыдущих выпусках у YourKit были некоторые преимущества с большими снимками, но теперь это уже не так.
Ответ 7
С Java 7 Update 40 Oracle включил Управление миссиями Java (первоначально часть JRockit JDK) - очень мощный инструмент настройки производительности, который способный конкурировать с yourkit/jprofiler.
Взгляните и удивляйтесь.
Ответ 8
Я использовал yourkit, и это очень хороший профилировщик, лучший из которых я когда-либо использовал в java (за многие годы я использовал множество других). что, как говорится, я никогда не использовал jprofiler, поэтому я не могу дать прямого сравнения.
Ответ 9
Определенно YourKit... Он смог открыть 4 гигабайта сбрасывания кучи с использованием всего 1 г кучи. В то время как Jprofiler с одинаковым распределением кучи разбился!
Ответ 10
Для быстрого и грязного профилирования программ командной строки JIP работает очень хорошо.
Ответ 11
Я использовал JProfiler в течение многих лет и очень доволен этим. IntelliJ, похоже, переключает свою рекомендацию назад и вперед между YourKit и JProfiler, поэтому я бы предположил, что их функциональные возможности схожи. Я считаю, что они оба имеют пробную версию.
Ответ 12
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Альтернативный ответ.
у них есть различные продукты для мониторинга производства/профилирования. UNLIKE другие инструменты разработки времени: http://www.jinspired.com/products/jxinsight/
Этот пост на theserverside на JDBInsight: http://www.theserverside.com/news/thread.tss?thread_id=13488
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я НЕ СВЯЗАН с этой компанией на любом уровне.
Ответ 13
Я использовал YourKit. Я не использовал JProfiler. Раньше я использовал OptimizeIt. У меня очень хорошее мнение о YourKit. Это очень стабильный и хороший графический интерфейс и хороший список функций. Одна уникальная особенность, которую я заметил, - это профилирование CPU с и без времени ожидания (например, I/O wais), включая.
Это также очень разумно (около 1100 долларов за 5 лицензий, которые я думаю)
Ответ 14
YourKit
Он низкий накладные расходы, стабильный, простой в установке на JVM для профилирования (только одна dll) и мощный.
Для анализа кучи дампов это единственный профайлер, который приближается к Eclipse Memory Analyzer.
Ответ 15
Я использовал только JProfiler (и некоторые JProbe). Насколько я могу судить, одним из ограничений YourKit является то, что они, похоже, не поддерживают JDK 1.4.2. Это не проблема для многих людей, но это может быть.
Ответ 16
Как и в стороне, вы можете рассмотреть профилировщик Netbeans - это довольно хорошо. Но я не использовал ни одного из двух вы упомянули.
Ответ 17
YourKit отлично. Вы также можете проверить профилировщик, встроенный в NetBeans, - это довольно круто.
Ответ 18
Я использую JProfiler и нахожу его в целом ОК. Однако функция "динамического инструментария" ужасно предвзята для небольших методов.
Ответ 19
Я использую профилировщик TPTP. лучшая функция, которую он может легко интегрировать в Eclipse, но плохо то, что Eclipse работает медленнее.
Ответ 20
Определенно YourKit. Это самый интуитивный и стабильный!
Ответ 21
+1 для yourkit --- использование 7.0 в dev-окнах в windows
не использовал JProfiler некоторое время - не могу комментировать, так как они могли улучшиться тем временем.