¿Qué me pueden recomendar para usar con Java?
El único requisito es que sea de código abierto o que no tenga una licencia académica demasiado cara.
¿Qué me pueden recomendar para usar con Java?
El único requisito es que sea de código abierto o que no tenga una licencia académica demasiado cara.
Respuestas:
El VisualVM que viene con jdk6 tiene un generador de perfiles básico en su interior. VisualVM se proporciona con el jdk, por lo que si tiene el jdk6 instalado, es probable que también lo tenga instalado.
VisualVM
antes con éxito, pero me fallaba al intentar crear un perfil de una aplicación de Tomcat. Esto funcionó para mí: github.com/jvm-profiling-tools/honest-profiler
tienes una lista aquí (enumerándolos a continuación, en caso de que el enlace se rompa)
- JMemProf
- JMP
- DrMem
- JTreeProfiler
- Generador de perfiles de NetBeans
- API de JAMon
- JBoss Profiler
- MessAdmin
- Infrarrojo
- TomcatProbe
- Generador de perfiles interactivo de Java (JIP)
- Profiler4j
- Cronógrafo
- JMeasurement
- DJProf
- TIJmp
- Allmon
- Appspy
- EurekaJ
- japex
- OKTECH Profiler
- Perf4j
¡Ah! Netbeans Profiler , ganador del premio "Producto del año" de developer.com, en 2009.
Java tiene un generador de perfiles integrado básico llamado HProf . Encuentro útil comparar los resultados que proporciona con los resultados de perfiladores de características más completas.
La herramienta de código abierto jvmtop incluye un generador de perfiles de consola básico. Salida de ejemplo:
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()
Aquí hay un artículo sobre la creación de perfiles de aplicaciones Java mediante TPTP y un tutorial de creación de perfiles de aplicaciones basadas en J2SE 5.0 utilizando Eclipse TPTP .
Si está buscando un generador de perfiles de código abierto sencillo y fácil de usar, es posible que desee echar un vistazo a Jip ( Java Interactive Profiler ). Está publicado bajo una licencia BSD. Lo encontré bastante útil para programas pequeños. Al menos, los resultados que da son mucho más fáciles de entender que la salida de hprofs.
Java Mission Control , es de uso gratuito para el desarrollo y se integra con Eclipse. Tiene una sobrecarga muy baja (<1%) ya que se suma a los datos que la JVM está recopilando de todos modos.
Es muy fácil de usar y también puede brindar mucha información que normalmente no encontrará en otras herramientas de generación de perfiles, por ejemplo, generación de perfiles de latencia, inspección de memoria en línea, estadísticas detalladas de gc
Esto es rápido, sucio y muy efectivo: simplemente realice algunos volcados de subprocesos o pause el programa varias veces y observe los seguimientos de la pila.
Considere https://github.com/jvm-profiling-tools/async-profiler de vanguardia
Este proyecto es un generador de perfiles de muestreo de baja sobrecarga para Java que no sufre el problema de sesgo de Safepoint . Cuenta con API específicas de HotSpot para recopilar seguimientos de pila y rastrear asignaciones de memoria. El generador de perfiles funciona con OpenJDK, Oracle JDK y otros tiempos de ejecución de Java basados en HotSpot JVM.
También está integrado en IntelliJ IDEA Ultimate: https://www.jetbrains.com/help/idea/cpu-profiler.html .
También hay https://github.com/jvm-profiling-tools/honest-profiler similares .
La comparación entre async-profiler
y honest-profiler
: https://github.com/jvm-profiling-tools/async-profiler/issues/77
Netbeans IDE incluye un generador de perfiles gratuito.
Además, si no recuerdo mal, la licencia académica de JProfiler es (relativamente) económica.
JVM Monitor es un generador de perfiles de Java integrado con Eclipse para monitorear el uso de CPU, subprocesos y memoria de las aplicaciones Java.
Si se necesita un análisis más profundo, puede usar otras herramientas (por ejemplo , TPTP , Memory Analyzer ) como siguiente paso.