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.


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/


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



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.


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()

4

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.


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


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.


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


Ł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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.