Frage

Ich installierte Java nur 1.6_07 so konnte ich versuchen Profilierung mit VisualVM. Es sagt mir, dass meine ca. 60% seiner Zeit in sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run verbringt

Wie kann ich herausfinden, was es während dieser Zeit zu tun? Wie viel von der Zeit wartet sie für etwas, das es zu nennen, oder sonst etwas zu tun? Was sie anrufen und was es nennt? Ich kann einfach nicht scheinen, jede mögliche Weise zu finden, um tiefere Ebene zu aufschlüsseln, wie es in Quantify oder Perl-Profiler ist.

War es hilfreich?

Lösung

Ich habe keine Erfahrung mit VisualVM - aber JRockit Profiler hat , um diese Informationen zur Verfügung stellen; Sie betrachten kann es stattdessen verwenden.

Update: eine Frage mit einer Liste von Java-Profiler finden Sie hier , für Benutzer mit ausreichend rep gelöscht Fragen anzuzeigen.

Andere Tipps

Hat Ihre App verwenden RMI über TCP? Wenn nicht, ist es möglich, dass dies eine Heisenbug ist, verursacht durch die VM instrumentiert? Ich gehe davon aus VisualVM muss RMI Anrufe verwenden, um herauszufinden, was in der JVM los ist ....

Ich habe mit gestartet den neuen VisualVM 1.2 . Es ermöglicht die Profilierung CPU und Drilldown einen Aufrufgraphen verwenden. Probieren Sie es aus.

Mit 1.3.2 sehen dies auch die berichtete hangup zu sein ich bin schlagen. In 1.3.2, wenn Sie einen Thread-Dump tun und suchen diese Sie sehen nennen, wo es in der Aufrufkette für diesen Thread landet. Nicht sicher, ob Yuval F wurde sonst auf diese oder etwas verweisen. Suchen Sie die Call-Kette zu sehen, was es ruft und so weiter, nach unten schauen, um zu sehen, was es von und so weiter genannt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top