Die Anzeige der aufrufstruktur in VisualVM?
Beim profiling der CPU-Zeit für eine Anwendung mit VisualVM kann man einen "Call Tree" - Reiter, nachdem Sie einen Schnappschuss aufgenommen. Aber in meinem Fall, die aufrufstruktur zeigt nur einige RMI-TCP-Klassen und-Methoden, aber keine einzelne Klasse von meiner Anwendung.
Wie kann ich die korrekte Aufruf-Baum?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möglichkeiten
Gibt es einen "Einstellungen" checkbox auf der Registerkarte "Profiler". Wenn Sie das Kontrollkästchen "Einstellungen" ein anderes Fenster wird angezeigt, dass können Sie konfigurieren, welche Klassen der profiler sammelt Daten über.
Hier ist ein screenshot.
Wie @Holger schon sagte, den profiler ' s/sampler ist snapshots sollen nur zeigen ausgeführten threads. Jedoch, fand ich durch persönliche Erfahrung, dass die Probenahme von snapshots manchmal zeigen mehrere threads, die Profilierung lieben.
Außerdem, VisualVM ist der sampler ermöglicht es Ihnen, um zu sehen, in jedem thread die CPU-Zeit in echt-Zeit (ohne snapshot), egal ob es laufen, schlafen, warten oder überwachen.
Verstehe ich nicht, warum dies geschieht, da profiling sollte genauer sein als sampling (hier sehen Sie den Unterschied), aber es funktioniert.
Alles in allem, würde ich empfehlen, dass Sie versuchen, den sampler, und sehen, ob es funktioniert.
Aufrufstruktur zeigt nur threads die wirklich lief bei der Probenahme/- profiling (konnten nicht schlafen die ganze Zeit) und deren stack-traces habe nicht herausgefiltert werden ganz. Der filter eingerichtet ist, bevor eine Probenahme oder profiling. Bei der Aktivierung der "Einstellungen" das Kontrollkästchen in der rechten oberen Ecke können Sie den filter eingerichtet. Im Falle des sampler können Sie die sampling-Frequenz ist ein trade-off zwischen performance und das Risiko zu überwachen einer Laufenden Zustand eines Threads. Aber es könnte sein, dass Ihre Anwendung war wirklich im Leerlauf während der Profilerstellung. Dann nur threads, die Sie sehen, sind der RMI threads die Aufrechterhaltung der Verbindung zu VisualVM.