Open Source Java Profilers [zamknięte]

94

Co możecie polecić do używania z Javą?

Jedynym wymogiem jest to, że powinien być open source lub niezbyt kosztowna licencja akademicka.

Hamza Yerlikaya
źródło
4
Mówiąc open source, masz na myśli wolne? Mają różne znaczenia. Czy Twoje pytanie dotyczy niedrogich profilerów?
Robert Munteanu
3
wolny jak w wolności czy wolny jak za darmo? Och, zamieszanie!
Tarski

Odpowiedzi:

61

VisualVM, który jest dostarczany z jdk6, ma w sobie podstawowy profiler. VisualVM jest dostarczany z jdk, więc jeśli masz zainstalowany jdk6, prawdopodobnie masz go również zainstalowany.

https://visualvm.github.io/

Chi
źródło
3
Profiler VisualVM jest samodzielną wersją programu NetBeans. To BARDZO dobry początek.
Thorbjørn Ravn Andersen
2
Zdecydowanie pobierz najnowszą wersję ze strony: visualvm.dev.java.net . Ponadto: JEST to profiler używany przez NetBeans.
Peterdk
Używałem VisualVMwcześniej z powodzeniem, ale podczas próby profilowania aplikacji Tomcat powodowało to awarię. To zadziałało dla mnie: github.com/jvm-profiling-tools/honest-profiler
Lambart
21

masz tutaj listę (wymieniając je poniżej, w przypadku, gdy link zostanie uszkodzony)

  • JMemProf
  • JMP
  • DrMem
  • JTreeProfiler
  • NetBeans Profiler
  • JAMon API
  • JBoss Profiler
  • MessAdmin
  • Podczerwień
  • TomcatProbe
  • Java Interactive Profiler (JIP)
  • Profiler4j
  • Stoper
  • JMeasurement
  • DJProf
  • TIJmp
  • Allmon
  • Appspy
  • EurekaJ
  • japex
  • OKTECH Profiler
  • Perf4j
LB40
źródło
1
Możesz dodać to do listy: github.com/jvm-profiling-tools/honest-profiler
Lambart
10

Java ma wbudowany podstawowy profiler o nazwie HProf . Uważam, że przydatne jest porównanie wyników, które zapewnia, z wynikami uzyskanymi z bardziej funkcjonalnych profilerów.

Peter Lawrey
źródło
1
Używam HPROF od lat - i chociaż może nie być ładny, pomógł mi rozwiązać niezliczone problemy z pamięcią i wydajnością.
Gandalf
1
HPROF często znajduje różne punkty do optymalizacji. Często używam go po tym, jak YourKit nie daje już oczywistych punktów do optymalizacji.
Peter Lawrey
2
Usunięte od jdk 9. openjdk.java.net/jeps/240
user2418306
5

Narzędzie jvmtop typu open source zawiera podstawowy profiler konsoli. Przykładowe dane wyjściowe:

 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()
MRalwasser
źródło
4

Eclipse TPTP

Tutaj jest artykuł o profilowaniu aplikacji Java przy użyciu TPTP, a tutaj jest samouczek Profilowanie aplikacji opartych na J2SE 5.0 przy użyciu Eclipse TPTP .

lothar
źródło
3
Nigdy nie byłem w stanie ustawić TPTP. Może jestem za głupi, żeby go używać.
quant_dev
@quant_dev: Miałem ten sam problem, ale jakoś przypadkowo udało mi się ustawić go nagle (restart zaćmienia czy cokolwiek?). Ale kiedy go użyłem, okazało się, że jest prawie bezużyteczny, jest niesamowicie powolny i żądny zasobów do tego stopnia, że ​​zabiłem zaćmienie. Niektóre z bardziej użytecznych widoków, które zostały wymienione w kilku źródłach, które znalazłem w Internecie, również wydają się już nie istnieć w obecnej wersji, która działa z zaćmieniem 3.5. Więc w tej chwili jest to po prostu ogromna KROPKA bezużyteczności.
x4u
1
Eclipse TPTP wygląda jak dojrzały produkt, ale działa bardzo wolno. Nie mogę zrozumieć, dlaczego ...
Roalt
4
Niestety TPTP doczekał się teraz swojej ostatecznej wersji (v4.7.2). Został zarchiwizowany i nie jest już częścią jednoczesnego wydania Eclipse.
joelittlejohn
3

Jeśli szukasz prostego, łatwego w użyciu programu do profilowania typu open source, możesz rzucić okiem na Jip ( Java Interactive Profiler ). Jest opublikowany na licencji BSD. Okazało się, że jest to całkiem przydatne dla małych programów. Przynajmniej wyniki, które daje, są o wiele łatwiejsze do zrozumienia niż wyniki hprofs.

Martin Dirichs
źródło
2

Java Mission Control , jest bezpłatna do programowania i integruje się z Eclipse. Ma bardzo niskie narzuty (<1%), ponieważ i tak korzysta z danych zbieranych przez JVM.

Jest bardzo łatwy w użyciu i może również dostarczyć wiele informacji, których zwykle nie znajdziesz w innych narzędziach do profilowania, np. Profilowanie opóźnień, inspekcja pamięci online, szczegółowe statystyki GC

Kire Haglin
źródło
1

Jest to szybkie, brudne i bardzo efektywne: po prostu wykonaj kilka zrzutów wątków lub kilkakrotnie wstrzymaj program i spójrz na ślady stosu.

Mike Dunlavey
źródło
1

Rozważ najnowocześniejsze https://github.com/jvm-profiling-tools/async-profiler

Ten projekt jest profilerem próbkowania o niskim nakładzie pracy dla języka Java, który nie cierpi z powodu błędu odchylenia Safepoint . Zawiera specyficzne dla HotSpot interfejsy API do zbierania śladów stosu i śledzenia alokacji pamięci. Profiler współpracuje z OpenJDK, Oracle JDK i innymi środowiskami wykonawczymi Java opartymi na HotSpot JVM.

Jest również wbudowany w IntelliJ IDEA Ultimate: https://www.jetbrains.com/help/idea/cpu-profiler.html .


Jest też podobny https://github.com/jvm-profiling-tools/honest-profiler .

Porównanie między async-profileri honest-profiler: https://github.com/jvm-profiling-tools/async-profiler/issues/77

Vadzim
źródło
Ładny ilustrowany artykuł na temat async-profilera: hackernoon.com/…
Vadzim
0

Netbeans IDE zawiera darmowy program do profilowania.

Ponadto, o ile dobrze pamiętam, licencja akademicka na JProfiler jest (stosunkowo) niedroga.

Paul Morie
źródło
1
OP poprosił o „niezbyt kosztowną licencję akademicką”. Pojedyncza licencja akademicka na JProfiler kosztuje 199 USD
masher
1
Poprosił o coś, co było open source lub miało niedrogą licencję akademicką. Moim zdaniem 199 USD jest dość niedrogie jak na narzędzie, które kosztuje 499 USD za normalną licencję.
Paul Morie
0

JVM Monitor to program do profilowania Java zintegrowany z Eclipse w celu monitorowania wykorzystania procesora, wątków i pamięci przez aplikacje Java.

Jeśli potrzebna jest dalsza głęboka analiza, możesz skorzystać z innych narzędzi (np. TPTP , Memory Analyzer ) jako kolejnego kroku.

Barun
źródło