Профилировщики Java с открытым исходным кодом [закрыто]


94

Что вы, ребята, можете порекомендовать использовать с Java?

Единственное требование - это должен быть открытый исходный код или не слишком дорогая академическая лицензия.


4
Когда вы говорите «открытый исходный код», вы имеете в виду бесплатный? У них разные значения. Ваш вопрос о недорогих профилировщиках?
Роберт Мунтяну

3
бесплатно, как на свободе, или бесплатно, как бесплатно? Ах, какая путаница!
Тарский

Ответы:


61

VisualVM, поставляемый с jdk6, имеет внутри базовый профилировщик. VisualVM поставляется с jdk, поэтому, если у вас установлен jdk6, он, вероятно, у вас тоже установлен.

https://visualvm.github.io/


3
Профилировщик VisualVM - это автономная версия профилировщика в NetBeans. Это ОЧЕНЬ хорошее начало.
Thorbjørn Ravn Andersen

2
Обязательно загрузите самую последнюю версию на: visualvm.dev.java.net . Также: это тот профилировщик, который использует NetBeans.
Peterdk,

Раньше я VisualVMуспешно использовал, но у меня вылетал сбой при попытке профилировать приложение Tomcat. Это сработало для меня: github.com/jvm-profiling-tools/honest-profiler
Lambart

21

у вас есть список здесь (список их ниже, в случае, ссылка сломается)

  • 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

1
Вы можете добавить это в список: github.com/jvm-profiling-tools/honest-profiler
Lambart


10

В Java есть базовый встроенный профилировщик под названием HProf . Я считаю полезным сравнить полученные результаты с результатами более полнофункциональных профилировщиков.


1
Я использовал HPROF в течение многих лет - и хотя он может показаться некрасивым, он помог мне решить множество проблем с памятью и производительностью.
Gandalf

1
HPROF часто находит разные моменты для оптимизации. Я часто использую его после того, как YourKit больше не дает мне очевидных моментов для оптимизации.
Питер Лоури

2
Удалено с jdk 9. openjdk.java.net/jeps/240
user2418306

5

Инструмент с открытым исходным кодом 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()

4

3
Мне никогда не удавалось настроить 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.


2

Java Mission Control , его можно бесплатно использовать для разработки и интегрировать с Eclipse. Он имеет очень низкие накладные расходы (<1%), поскольку он все равно использует данные, которые JVM собирает.

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


1

Это быстро, грязно и очень эффективно: просто сделайте несколько дампов потоков или несколько раз приостановите программу и посмотрите трассировку стека.


1

Рассмотрите ультрасовременный 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


Хорошая иллюстрированная статья о async-profiler: hackernoon.com/…
Вадим

0

IDE Netbeans включает бесплатный профилировщик.

Кроме того, если я правильно помню, академическая лицензия для JProfiler (относительно) недорогая.


1
OP попросил "не слишком дорогую академическую лицензию". Одна академическая лицензия для JProfiler стоит 199 долларов США
Masher

1
Он попросил что-то с открытым исходным кодом или недорогую академическую лицензию. На мой взгляд, 199 долларов США - это довольно недорого для инструмента, который стоит 499 долларов за обычную лицензию.
Пол Мори

0

Монитор JVM - это профилировщик Java, интегрированный с Eclipse, для мониторинга использования ЦП, потоков и памяти приложениями Java.

Если требуется дальнейший глубокий анализ, вы можете использовать другие инструменты (например, TPTP , Memory Analyzer ) в качестве следующего шага.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.