Когда вы говорите «открытый исходный код», вы имеете в виду бесплатный? У них разные значения. Ваш вопрос о недорогих профилировщиках?
Роберт Мунтяну
3
бесплатно, как на свободе, или бесплатно, как бесплатно? Ах, какая путаница!
Тарский
Ответы:
61
VisualVM, поставляемый с jdk6, имеет внутри базовый профилировщик. VisualVM поставляется с jdk, поэтому, если у вас установлен jdk6, он, вероятно, у вас тоже установлен.
В Java есть базовый встроенный профилировщик под названием HProf . Я считаю полезным сравнить полученные результаты с результатами более полнофункциональных профилировщиков.
Я использовал HPROF в течение многих лет - и хотя он может показаться некрасивым, он помог мне решить множество проблем с памятью и производительностью.
Gandalf
1
HPROF часто находит разные моменты для оптимизации. Я часто использую его после того, как YourKit больше не дает мне очевидных моментов для оптимизации.
Мне никогда не удавалось настроить TPTP. Возможно, я слишком туп, чтобы им пользоваться.
Quant_dev 01
@quant_dev: У меня была такая же проблема, но каким-то образом случайно удалось настроить ее внезапно (перезапуск eclipse или что-то еще?). Но когда я его использовал, он оказался почти бесполезным, был невероятно медленным и требовал ресурсов до такой степени, что у меня было kill eclipse. Некоторые из наиболее полезных представлений, которые были упомянуты в нескольких ссылках, которые я нашел в Интернете, также, похоже, больше не существуют в текущей версии, которая работает с eclipse 3.5. Так что на данный момент это просто огромный бесполезный BLOB.
x4u
1
Eclipse TPTP выглядит как зрелый продукт, но работает очень медленно. Я не могу понять, почему ...
Роальт
4
К сожалению, теперь у TPTP есть последний выпуск (v4.7.2). Он был заархивирован и больше не является частью одновременного выпуска Eclipse.
joelittlejohn
3
Если вы ищете простой в использовании профилировщик с открытым исходным кодом, вы можете взглянуть на Jip ( Java Interactive Profiler ). Он опубликован под лицензией BSD. Я нашел его весьма полезным для небольших программ. По крайней мере, результаты, которые он дает, намного легче понять, чем вывод hprofs.
Java Mission Control , его можно бесплатно использовать для разработки и интегрировать с Eclipse. Он имеет очень низкие накладные расходы (<1%), поскольку он все равно использует данные, которые JVM собирает.
Его очень легко использовать, и он также может предоставить много информации, которую вы обычно не найдете в других инструментах профилирования, например профилирование задержки, онлайн-проверку памяти, подробную статистику gc.
Это быстро, грязно и очень эффективно: просто сделайте несколько дампов потоков или несколько раз приостановите программу и посмотрите трассировку стека.
Этот проект представляет собой профилировщик с низкими накладными расходами для Java, который не страдает от проблемы смещения Safepoint . Он включает API-интерфейсы, специфичные для HotSpot, для сбора трассировок стека и отслеживания распределения памяти. Профилировщик работает с OpenJDK, Oracle JDK и другими средами выполнения Java на основе HotSpot JVM.
OP попросил "не слишком дорогую академическую лицензию". Одна академическая лицензия для JProfiler стоит 199 долларов США
Masher
1
Он попросил что-то с открытым исходным кодом или недорогую академическую лицензию. На мой взгляд, 199 долларов США - это довольно недорого для инструмента, который стоит 499 долларов за обычную лицензию.
Пол Мори
0
Монитор JVM - это профилировщик Java, интегрированный с Eclipse, для мониторинга использования ЦП, потоков и памяти приложениями Java.
Если требуется дальнейший глубокий анализ, вы можете использовать другие инструменты (например, TPTP , Memory Analyzer ) в качестве следующего шага.
Ответы:
VisualVM, поставляемый с jdk6, имеет внутри базовый профилировщик. VisualVM поставляется с jdk, поэтому, если у вас установлен jdk6, он, вероятно, у вас тоже установлен.
https://visualvm.github.io/
источник
VisualVM
успешно использовал, но у меня вылетал сбой при попытке профилировать приложение Tomcat. Это сработало для меня: github.com/jvm-profiling-tools/honest-profilerу вас есть список здесь (список их ниже, в случае, ссылка сломается)
источник
Ах. 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()
источник
Затмение TPTP
Вот статья о профилировании приложений 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
Он также встроен в 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 ) в качестве следующего шага.
источник