Perfiladores de Java de código abierto [cerrado]


94

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


4
Cuando dices código abierto, ¿te refieres a gratis? Tienen diferentes significados. ¿Su pregunta es acerca de los _perfiles económicos?
Robert Munteanu

3
libre como en libertad o libre como gratis? ¡Oh, la confusión!
Tarski

Respuestas:


61

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.

https://visualvm.github.io/


3
El generador de perfiles VisualVM es una versión independiente del de NetBeans. Es un comienzo MUY bueno.
Thorbjørn Ravn Andersen

2
Definitivamente descargue la versión más actualizada en: visualvm.dev.java.net . Además: este es el generador de perfiles que usa NetBeans.
Peterdk

Lo he usado VisualVMantes 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
Lambart

21

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

1
Puede agregar esto a la lista: github.com/jvm-profiling-tools/honest-profiler
Lambart


10

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.


1
He usado HPROF durante años, y aunque puede que no sea bonito, me ha ayudado a resolver innumerables problemas de memoria y rendimiento.
Gandalf

1
HPROF a menudo encuentra diferentes puntos para optimizar. Lo uso a menudo después de que YourKit ya no me da puntos obvios para optimizar.
Peter Lawrey

2
Eliminado desde jdk 9. openjdk.java.net/jeps/240
user2418306

5

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

4

3
Nunca he podido configurar TPTP. Quizás soy demasiado tonto para usarlo.
quant_dev

@quant_dev: Tuve el mismo problema, pero de alguna manera accidentalmente logré configurarlo de repente (¿eclipse reiniciado o lo que sea?). Pero cuando lo usé resultó ser casi inútil, fue increíblemente lento y hambriento de recursos hasta el punto en que tuve un eclipse de muerte. Algunas de las vistas más útiles que se mencionaron en varias referencias que encontré en línea tampoco parecen existir más en la versión actual que funciona con eclipse 3.5. Así que por el momento es básicamente un BLOB enorme de inutilidad.
x4u

1
Eclipse TPTP parece un producto maduro pero es extremadamente lento. No puedo entender por qué ...
Roalt

4
Desafortunadamente, TPTP ha tenido su versión final (v4.7.2). Se ha archivado y ya no forma parte del lanzamiento simultáneo de Eclipse.
joelittlejohn

3

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.


2

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


1

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.


1

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-profilery honest-profiler: https://github.com/jvm-profiling-tools/async-profiler/issues/77


Buen artículo ilustrado sobre async-profiler: hackernoon.com/…
Vadzim

0

Netbeans IDE incluye un generador de perfiles gratuito.

Además, si no recuerdo mal, la licencia académica de JProfiler es (relativamente) económica.


1
OP pidió una "licencia académica no demasiado cara". Una sola licencia académica para JProfiler cuesta US $ 199
masher

1
Pidió algo que fuera de código abierto o que tuviera una licencia académica económica. En mi opinión, 199 dólares es bastante económico para una herramienta que cuesta 499 dólares para una licencia normal.
Paul Morie

0

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.