Що ви можете порекомендувати хлопцям використовувати в Java?
Єдина вимога: вона має бути з відкритим кодом або не надто дорога академічна ліцензія.
Що ви можете порекомендувати хлопцям використовувати в Java?
Єдина вимога: вона має бути з відкритим кодом або не надто дорога академічна ліцензія.
Відповіді:
VisualVM, що поставляється з jdk6, має в своєму розпорядженні базовим профілером. VisualVM надається разом з jdk, тому, якщо у вас встановлений jdk6, ви, ймовірно, встановите його також.
VisualVM
успішно використовував, але це сталося для мене, коли я намагався профілювати додаток Tomcat. Це працювало для мене: github.com/jvm-profiling-tools/honest-profiler
у вас тут є список (перелічивши їх нижче, на випадок, якщо посилання порушиться)
- JMemProf
- JMP
- DrMem
- JTreeProfiler
- NetBeans Profiler
- JAMon API
- JBoss Profiler
- MessAdmin
- Інфрачервоний
- TomcatProbe
- Інтерактивний профілер Java (JIP)
- Profiler4j
- Секундомір
- JMeasurement
- DJProf
- TIJmp
- Алмон
- Appspy
- EurekaJ
- japex
- OKTECH Profiler
- 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/isissue/77
Netbeans IDE включає безкоштовний профілер.
Крім того, якщо я правильно пам’ятаю, академічна ліцензія на JProfiler є (відносно) недорогою.
JVM Monitor - це програма Java, інтегрована з Eclipse для контролю процесора, потоків та використання пам'яті програм Java.
Якщо потрібен подальший глибокий аналіз, ви можете використовувати інші інструменти (наприклад, TPTP , аналізатор пам’яті ) як наступний крок.