Профілі Java з відкритим кодом [закрито]


94

Що ви можете порекомендувати хлопцям використовувати в Java?

Єдина вимога: вона має бути з відкритим кодом або не надто дорога академічна ліцензія.


4
Коли ви говорите з відкритим кодом, ви маєте на увазі безкоштовно? Вони мають різні значення. Ваше запитання щодо _inexpensive профілістів?
Роберт Мунтяну

3
вільний, як у свободі, чи вільний, як у безкоштовному? О плутанина!
Тарскі

Відповіді:


61

VisualVM, що поставляється з jdk6, має в своєму розпорядженні базовим профілером. VisualVM надається разом з jdk, тому, якщо у вас встановлений jdk6, ви, ймовірно, встановите його також.

https://visualvm.github.io/


3
Профілер VisualVM - це окрема версія версії NetBeans. Це ДУЖЕ хороший старт.
Thorbjørn Ravn Andersen

2
Однозначно завантажуйте найновішу версію на: visualvm.dev.java.net . Також: це IS-профілер, який використовує NetBeans.
Peterdk

Раніше я VisualVMуспішно використовував, але це сталося для мене, коли я намагався профілювати додаток Tomcat. Це працювало для мене: github.com/jvm-profiling-tools/honest-profiler
Lambart

21

у вас тут є список (перелічивши їх нижче, на випадок, якщо посилання порушиться)

  • JMemProf
  • JMP
  • DrMem
  • JTreeProfiler
  • NetBeans Profiler
  • JAMon API
  • JBoss Profiler
  • MessAdmin
  • Інфрачервоний
  • TomcatProbe
  • Інтерактивний профілер Java (JIP)
  • Profiler4j
  • Секундомір
  • JMeasurement
  • DJProf
  • TIJmp
  • Алмон
  • Appspy
  • EurekaJ
  • japex
  • OKTECH Profiler
  • Perf4j

1
Ви можете додати це до списку: github.com/jvm-profiling-tools/honest-profiler
Lambart


10

У Java є базовий вбудований профілер під назвою HProf . Мені здається корисним порівняти результати, які він надає, з результатами більш повноцінно представлених профілів.


1
Я використовую HPROF роками - і хоча це може бути не дуже красивим, це допомогло мені вирішити незліченну кількість пам'яті та продуктивності.
Гандальф

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

@quant_dev: У мене була така ж проблема, але якось випадково вдалося її встановити раптово (затемнення перезапустилося чи що завгодно?). Але коли я використав це, виявилося майже марним, був неймовірно повільним і ресурсним голодував до того моменту, коли я вбив затемнення. Деякі з більш корисних поглядів, про які згадувалося в кількох посиланнях, про які я знайшов в Інтернеті, також, здається, вже не існують у поточному випуску, який працює з затемненням 3.5. Тож на даний момент це просто величезна БЛОБ непотрібності.
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/isissue/77


Приємна ілюстрована стаття про async- profiler
Вадим

0

Netbeans IDE включає безкоштовний профілер.

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


1
ОП попросили "не надто дорогу академічну ліцензію". Єдина академічна ліцензія для JProfiler становить 199 доларів США
майстер

1
Він попросив щось, що було з відкритим кодом або мало недорогу академічну ліцензію. На мою думку, 199 доларів США є досить дешевим інструментом, який коштує 499 доларів за звичайну ліцензію.
Пол Морі

0

JVM Monitor - це програма Java, інтегрована з Eclipse для контролю процесора, потоків та використання пам'яті програм Java.

Якщо потрібен подальший глибокий аналіз, ви можете використовувати інші інструменти (наприклад, TPTP , аналізатор пам’яті ) як наступний крок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.