Pergunta

Acabei de instalar o Java 1.6_07 para que eu pudesse tentar a criação de perfis com VisualVM.Ele me diz que meu app está a gastar 60% do seu tempo em sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run

Como faço para descobrir o que ele estava fazendo durante esse tempo?Quanto tempo e de que foi ele espera por algo de chamá-lo, ou fazer outra coisa?O que estava ligando para ele e o que ele foi chamado?Eu simplesmente não consigo encontrar nenhuma maneira de aprofundar a níveis mais profundos, assim como não há em Quantificar ou o Perl do profiler.

Foi útil?

Solução

Eu não tenho experiência com o VisualVM -- mas JRockit do profiler não fornecer esta informação;você pode considerar a usá-lo em vez disso.

Atualização: uma pergunta com uma lista de java criadores de perfil pode ser encontrado aqui, que , para usuários com suficiente rep visualizar eliminados perguntas.

Outras dicas

Se seu Aplicativo usa RMI sobre TCP?Se não, é possível que este é um heisenbug, causados pela instrumentação da VM?Eu suponho que VisualVM deve usar RMI chamadas para descobrir o que está acontecendo na JVM....

Eu comecei usar o novo VisualVM 1.2.Ele permite a criação de perfis de CPU e de perfuração para baixo, usando um gráfico de chamada.Experimentá-lo.

Usando 1.3.2 também vendo sendo este o informou de suspender eu estou acertando.Em 1.3.2, se você fizer uma thread dump e olhar para esta chamada, você pode ver onde ele cair na chamada cadeia para esse segmento.Não tenho certeza se Yuval F estava se referindo a esta ou a outra coisa.Olhar para a cadeia de chamada para ver o que ele está chamando, e assim por diante, olhe para baixo para ver o que está sendo chamado e assim por diante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top