Ich verwende VisualVM
, um zu sehen, wo meine Anwendung langsam ist. Aber es zeigt nicht alle Methoden an, zeigt wahrscheinlich nicht alle Methoden, die die Anwendung verzögern.Warum werden nicht alle Methoden im VisualVM-Profiler angezeigt?
Ich habe eine Echtzeitanwendung (Tonverarbeitung) und habe einen Zeitmangel in einigen hundert Mikrosekunden.
Ist es möglich, dass VisualVM
Methoden versteckt, die selbst schnell sind?
UPDATE 1
I langsames Verfahren nach sampler gefunden und zu raten. Es war toString()
Methode, die von Debug Logging aufgerufen wurde, die ausgeschaltet wurde, aber eine Zeit verbraucht.
Settings
geholfen und jetzt weiß ich, wie man es sieht: es war abhängig von Start profiling from
Option.
Verwenden Sie den Sampler oder Profiler? Der Sampler, Brunnen Proben, in einem definierten Zeitintervall. Der Profiler ist genauer, aber viel langsamer. –
Die Debug-Protokollierung sollte alle mit 'if (log.isDebugEnabled()) {' oder ähnlichem umgeben sein, um String-Verkettung und andere Dinge zu vermeiden, die in Ihren Protokollaufrufen stattfinden. –
Siehe auch https://blogs.oracle.com/nbprofiler/entry/profiling_with_visualvm_part_1 und https://blogs.oracle.com/nbprofiler/entry/profiling_with_visualvm_part_2, um weitere Informationen zum Profiling und zum Festlegen von Profiling-Roots und Instrumentenfiltern zu erhalten. –