Domanda

Ho appena installato Java 1.6_07 in modo da poter provare la profilazione con VisualVM.Mi dice che la mia app trascorre il 60% del suo tempo in sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run

Come faccio a sapere cosa stava facendo in quel periodo?Per quanto tempo ha aspettato che qualcuno lo chiamasse o ha fatto qualcos'altro?Cosa lo chiamava e cosa chiamava?Non riesco proprio a trovare un modo per approfondire livelli più profondi come in Quantify o nel profiler Perl.

È stato utile?

Soluzione

Non ho esperienza con VisualVM, ma con il profiler di JRockit fa fornire queste informazioni;potresti considerare di usarlo invece.

Aggiornamento: è possibile trovare una domanda con un elenco di profiler Java Qui, per gli utenti con una reputazione sufficiente per visualizzare le domande eliminate.

Altri suggerimenti

La tua app utilizza RMI su TCP?In caso contrario, è possibile che si tratti di un heisenbug, causato dalla strumentazione della VM?Presumo che VisualVM debba utilizzare le chiamate RMI per capire cosa sta succedendo nella JVM ....

Ho iniziato a usare il nuovo VisualVM 1.2.Consente la profilazione della CPU e il drill-down utilizzando un grafico delle chiamate.Provalo.

Utilizzando 1.3.2, visto che questo è il problema di riaggancio segnalato, sto riscontrando.Nella versione 1.3.2 se esegui un dump del thread e cerchi questa chiamata puoi vedere dove finisce nella catena di chiamate per quel thread.Non sono sicuro se Yuval F si riferisse a questo o a qualcos'altro.Cerca la catena di chiamate per vedere cosa sta chiamando e così via, guarda in basso per vedere come viene chiamato e così via.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top