Что вы, ребята, можете порекомендовать использовать с Java?
Единственное требование - это должен быть открытый исходный код или не слишком дорогая академическая лицензия.
Что вы, ребята, можете порекомендовать использовать с Java?
Единственное требование - это должен быть открытый исходный код или не слишком дорогая академическая лицензия.
Ответы:
VisualVM, поставляемый с jdk6, имеет внутри базовый профилировщик. VisualVM поставляется с jdk, поэтому, если у вас установлен jdk6, он, вероятно, у вас тоже установлен.
VisualVM
успешно использовал, но у меня вылетал сбой при попытке профилировать приложение Tomcat. Это сработало для меня: github.com/jvm-profiling-tools/honest-profiler
у вас есть список здесь (список их ниже, в случае, ссылка сломается)
- JMemProf
- JMP
- DrMem
- JTreeProfiler
- Профилировщик NetBeans
- JAMon API
- JBoss Profiler
- MessAdmin
- Инфракрасный
- TomcatProbe
- Java Interactive Profiler (JIP)
- Profiler4j
- Секундомер
- JMeasurement
- DJProf
- TIJmp
- Allmon
- Appspy
- EurekaJ
- japex
- OKTECH Профайлер
- Perf4j
Ах. Netbeans Profiler , победитель конкурса developer.com "Продукт года" в 2009 году.
В Java есть базовый встроенный профилировщик под названием HProf . Я считаю полезным сравнить полученные результаты с результатами более полнофункциональных профилировщиков.
Инструмент с открытым исходным кодом jvmtop действительно включает базовый профилировщик консоли. Пример вывода:
JvmTop 0.7.0 alpha - 15:16:34, amd64, 8 cpus, Linux 2.6.32-27, load avg 0.41
http://code.google.com/p/jvmtop
Profiling PID 24015: org.apache.catalina.startup.Bootstrap
36.16% ( 57.57s) hudson.model.AbstractBuild.calcChangeSet()
30.36% ( 48.33s) hudson.scm.SubversionChangeLogParser.parse()
7.14% ( 11.37s) org.kohsuke.stapler.jelly.JellyClassTearOff.parseScript()
6.25% ( 9.95s) net.sf.json.JSONObject.write()
3.13% ( 4.98s) ....kohsuke.stapler.jelly.CustomTagLibrary.loadJellyScri()
Вот статья о профилировании приложений Java с использованием TPTP и учебное пособие « Профилирование приложений на основе J2SE 5.0 с использованием Eclipse TPTP» .
Если вы ищете простой в использовании профилировщик с открытым исходным кодом, вы можете взглянуть на Jip ( Java Interactive Profiler ). Он опубликован под лицензией BSD. Я нашел его весьма полезным для небольших программ. По крайней мере, результаты, которые он дает, намного легче понять, чем вывод hprofs.
Java Mission Control , его можно бесплатно использовать для разработки и интегрировать с Eclipse. Он имеет очень низкие накладные расходы (<1%), поскольку он все равно использует данные, которые JVM собирает.
Его очень легко использовать, и он также может предоставить много информации, которую вы обычно не найдете в других инструментах профилирования, например профилирование задержки, онлайн-проверку памяти, подробную статистику gc.
Это быстро, грязно и очень эффективно: просто сделайте несколько дампов потоков или несколько раз приостановите программу и посмотрите трассировку стека.
Рассмотрите ультрасовременный https://github.com/jvm-profiling-tools/async-profiler
Этот проект представляет собой профилировщик с низкими накладными расходами для Java, который не страдает от проблемы смещения Safepoint . Он включает API-интерфейсы, специфичные для HotSpot, для сбора трассировок стека и отслеживания распределения памяти. Профилировщик работает с OpenJDK, Oracle JDK и другими средами выполнения Java на основе HotSpot JVM.
Он также встроен в IntelliJ IDEA Ultimate: https://www.jetbrains.com/help/idea/cpu-profiler.html .
Также есть аналогичный https://github.com/jvm-profiling-tools/honest-profiler .
Сравнение между async-profiler
и honest-profiler
: https://github.com/jvm-profiling-tools/async-profiler/issues/77
IDE Netbeans включает бесплатный профилировщик.
Кроме того, если я правильно помню, академическая лицензия для JProfiler (относительно) недорогая.
Монитор JVM - это профилировщик Java, интегрированный с Eclipse, для мониторинга использования ЦП, потоков и памяти приложениями Java.
Если требуется дальнейший глубокий анализ, вы можете использовать другие инструменты (например, TPTP , Memory Analyzer ) в качестве следующего шага.