Лучший и безопасный Java Profiler для использования в производстве? [закрытый]

Я ищу профилировщик Java для использования в производственной среде с очень высоким спросом, коммерческой или бесплатной, которая отвечает всем следующим требованиям:

  • легкая интеграция с кодом (без перекомпиляции со специальными опциями, без кодовых крючков и т. д.). Отбрасываем некоторые профилировщики .банки рядом с кодом приложения в порядке.
  • должна быть возможность подключения/отключения к JVM без перезапуска приложения.
  • для профилирования не активен, не влияет на производительность
  • когда профилирование активно, незначительное влияние на производительность. Очень небольшое ухудшение приемлемо.
  • должен делать все "ожидаемые" вещи, которые делает профилировщик-время, затраченное в каждом методе, чтобы найти горячие точки,выделение объекта / профилирование памяти и т. д.

по сути, мне нужно что-то, что может сидеть в спячке в производстве, когда все в порядке, никто не знает или не заботится о том, что он есть, но затем сможет подключиться к нему хлопот (и снижение производительности) бесплатно определить трудно найти проблемы, такие как горячие точки и проблемы синхронизации.

10 ответов


вы пробовали YourKit? Он имеет почти все функции, которые вы ищете.


Java VisualVM-это инструмент, который предоставляет визуальный интерфейс для просмотра подробной информации о приложениях на основе технологии Java (Java applications) во время их работы на виртуальной машине Java (JVM). Java VisualVM организует данные JVM, которые извлекаются средствами Java Development Kit (JDK), и представляет информацию таким образом, что позволяет быстро просматривать данные в нескольких приложениях Java. Можно просматривать данные о локальных приложениях и приложениях, запущенных на удаленном компьютере принимать гостей. Вы также можете захватить данные о программном обеспечении JVM и сохранить данные в локальной системе, а затем просмотреть данные позже или поделиться данными с другими. Это поставляется с Oracle JDK IT self...

$ jvisualvm 

Я был счастлив с jProfiler.


предпочитаю Java Flight Recorder. Это не вызывает почти никаких накладных расходов производительности и имеет хороший графический интерфейс. Добавить параметры JVM

-XX:+UnlockCommercialFeatures -XX:+FlightRecorder

-XX:StartFlightRecording=name=test,filename=test.jfr,dumponexit=true

и откройте запись с помощью JMC.


проверка CA хитрый.

http://www.ca.com/us/application-management.aspx


Я использую проект Платформы Eclipse TPTP - Eclipse Test & Performance Tools. Подходит ли он для производственного использования или нет, зависит от пользователя. Для меня это нормально, и это соответствует вашим потребностям.

http://www.eclipse.org/tptp/


другой вариант -http://www.newrelic.com/. Мы используем его в производстве в течение некоторого времени, и он кажется довольно надежным и эффективным. Простой в настройке (один .опция командной строки jar и A-agent).


есть еще один новый вариант под названием javosize

когда я искал "лучший Java profiler" в google, я увидел на первой неоплачиваемой ссылке (это блог) тот же инструмент в комментариях к сообщению:

https://blog.oio.de/2014/03/07/java-profilers-a-short-comparison-between-jprofiler-yourkit-and-javas-visualvm/

надеюсь, что это помогает!

Edit: как говорят комментарии, ссылка linkedin-это частный форум. Прости за это. Вот ссылка на основной сайт:

http://www.javosize.com/gettingStarted.html


Fusionreactor Java Application Performance Monitor, также включает в себя очень низкие накладные расходы Java Profiler как часть своего портфолио функций. http://www.fusion-reactor.com/production-java-profiler/ FusionReactor может быть установлен в течение нескольких минут, и у них есть бесплатная 14-дневная пробная версия, чтобы проверить его.


посмотри Java Mission Control в сочетании с Самописцам. Начиная с выпуска Oracle JDK 7 Update 40 (7u40), Java Mission Control поставляется в комплекте с HotSpot JVM, поэтому он высоко интегрирован и претендует на небольшое влияние на производительность во время выполнения. Он имеет функциональность дерева вызовов, такую как Callgrind.