Co możecie polecić do używania z Javą?
Jedynym wymogiem jest to, że powinien być open source lub niezbyt kosztowna licencja akademicka.
Co możecie polecić do używania z Javą?
Jedynym wymogiem jest to, że powinien być open source lub niezbyt kosztowna licencja akademicka.
Odpowiedzi:
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.
VisualVM
wcześ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
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
Ach. Netbeans Profiler , zwycięzca konkursu „Produkt roku” developer.com w 2009 roku.
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.
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()
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 .
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.
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
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.
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-profiler
i honest-profiler
: https://github.com/jvm-profiling-tools/async-profiler/issues/77
Netbeans IDE zawiera darmowy program do profilowania.
Ponadto, o ile dobrze pamiętam, licencja akademicka na JProfiler jest (stosunkowo) niedroga.
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.