Pregunta

Acabo de instalar Java 1.6_07 para poder intentar crear perfiles con VisualVM.Me dice que mi aplicación pasa el 60% de su tiempo en sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run

¿Cómo puedo saber qué estaba haciendo durante ese tiempo?¿Cuánto tiempo estuvo esperando que algo lo llamara o haciendo otra cosa?¿Cómo lo llamaba y cómo lo llamaba?Parece que no puedo encontrar ninguna manera de profundizar en niveles más profundos como los que hay en Quantify o Perl Profiler.

¿Fue útil?

Solución

No tengo experiencia con VisualVM, pero sí con el generador de perfiles de JRockit. hace proporcionar esta información;puedes considerar usarlo en su lugar.

Actualizar: Se puede encontrar una pregunta con una lista de perfiladores de Java. aquí, para usuarios con suficiente reputación para ver las preguntas eliminadas.

Otros consejos

¿Su aplicación utiliza RMI sobre TCP?Si no es así, ¿es posible que se trate de un error heisen, causado por la instrumentación de la VM?Supongo que VisualVM debe usar llamadas RMI para descubrir qué está pasando en la JVM...

he empezado a usar el nuevo VisualVM 1.2.Permite perfilar la CPU y profundizar utilizando un gráfico de llamadas.Pruébalo.

Usando 1.3.2 también veo que este es el problema informado que estoy teniendo.En 1.3.2, si realiza un volcado de subprocesos y busca esta llamada, puede ver dónde aterriza en la cadena de llamadas para ese subproceso.No estoy seguro si Yuval F se refería a esto o a otra cosa.Busque la cadena de llamadas para ver a quién llama, etc., mire hacia abajo para ver a quién llama, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top