Que pouvez-vous recommander d'utiliser avec Java?
La seule exigence est qu'il doit être open source ou qu'il n'a pas de licence académique trop chère.
Que pouvez-vous recommander d'utiliser avec Java?
La seule exigence est qu'il doit être open source ou qu'il n'a pas de licence académique trop chère.
Réponses:
Le VisualVM fourni avec jdk6 contient un profileur de base. VisualVM est fourni avec le jdk, donc si vous avez installé le jdk6, vous l'avez probablement également installé.
VisualVM
avec succès, mais cela plantait pour moi en essayant de profiler une application Tomcat. Cela a fonctionné pour moi: github.com/jvm-profiling-tools/honest-profiler
vous avez une liste ici (listez-les ci-dessous, au cas où le lien serait cassé)
- JMemProf
- JMP
- DrMem
- JTreeProfiler
- Profileur NetBeans
- API JAMon
- JBoss Profiler
- MessAdmin
- Infrarouge
- TomcatProbe
- Java Interactive Profiler (JIP)
- Profiler4j
- Chronomètre
- JMesure
- DJProf
- TIJmp
- Allmon
- Appspy
- EurekaJ
- japex
- OKTECH Profiler
- Perf4j
Ah. Netbeans Profiler , lauréat du "Produit de l'année" de developer.com, en 2009.
Java a un profileur intégré de base appelé HProf . Je trouve utile de comparer les résultats qu'il fournit avec les résultats de profileurs plus complets.
L'outil open-source jvmtop inclut un profileur de console de base. Exemple de sortie:
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()
Voici un article sur le profilage d'application Java à l'aide de TPTP et voici un tutoriel sur le profilage d'applications basées sur J2SE 5.0 à l'aide d'Eclipse TPTP .
Si vous êtes à la recherche d'un profileur open source simple à utiliser, vous pouvez jeter un œil à Jip ( Java Interactive Profiler ). Il est publié sous une licence BSD. Je l'ai trouvé très utile pour les petits programmes. Au moins, les résultats qu'il donne sont beaucoup plus faciles à comprendre que les résultats de hprofs.
Java Mission Control , il est gratuit pour le développement et il s'intègre à Eclipse. Il a une surcharge très faible (<1%) car il se superpose aux données que la JVM collecte de toute façon.
Il est très facile à utiliser et peut également fournir de nombreuses informations que vous ne trouverez généralement pas dans d'autres outils de profilage, par exemple le profilage de latence, l'inspection de la mémoire en ligne, les statistiques détaillées de GC
C'est rapide, sale et très efficace: il suffit de prendre quelques threads, ou de mettre le programme en pause plusieurs fois, et de regarder les traces de la pile.
Pensez à https://github.com/jvm-profiling-tools/async-profiler de pointe
Ce projet est un profileur d'échantillonnage à faible surcharge pour Java qui ne souffre pas de problème de biais Safepoint . Il comporte des API spécifiques à HotSpot pour collecter des traces de pile et pour suivre les allocations de mémoire. Le profileur fonctionne avec OpenJDK, Oracle JDK et d'autres environnements d'exécution Java basés sur HotSpot JVM.
Il est également intégré à IntelliJ IDEA Ultimate: https://www.jetbrains.com/help/idea/cpu-profiler.html .
Il existe également des https://github.com/jvm-profiling-tools/honest-profiler similaires .
La comparaison entre async-profiler
et honest-profiler
: https://github.com/jvm-profiling-tools/async-profiler/issues/77
Netbeans IDE inclut un profileur gratuit.
De plus, si je me souviens bien, la licence académique de JProfiler est (relativement) peu coûteuse.
JVM Monitor est un profileur Java intégré à Eclipse pour surveiller l'utilisation du processeur, des threads et de la mémoire des applications Java.
Si une analyse plus approfondie est nécessaire, vous pouvez utiliser d'autres outils (par exemple TPTP , Memory Analyzer ) comme étape suivante.