Sto usando VisualVM
per vedere dove la mia applicazione è lenta. Ma non mostra tutti i metodi, probabilmente non mostra tutti i metodi che ritarda l'applicazione.Perché non vengono visualizzati tutti i metodi nel profiler VisualVM?
Possiedo un'applicazione realtime (elaborazione del suono) e una mancanza di tempo in poche centinaia di microsecondi.
È possibile che VisualVM
nasconda metodi che sono veloci essi stessi?
UPDATE 1
Ho trovato metodo lento dal campionatore e indovinare. Era il metodo toString()
che veniva chiamato dalla registrazione di debug disattivata ma che consumava un tempo.
Settings
aiutato e ora so come vederlo: era in base all'opzione Start profiling from
.
Si sta utilizzando il campionatore o il profiler? Il campionatore, ben campioni, in un intervallo di tempo definito. Il profiler è più preciso ma molto più lento. –
La registrazione di debug dovrebbe essere circondata da 'if (log.isDebugEnabled()) {' o simile per evitare la concatenazione di stringhe e altre cose che si verificano nelle chiamate di registro. –
Vedere anche https://blogs.oracle.com/nbprofiler/entry/profiling_with_visualvm_part_1 e https://blogs.oracle.com/nbprofiler/entry/profiling_with_visualvm_part_2 per ottenere ulteriori informazioni sulla profilazione e su come impostare il profilo delle radici e il filtro della strumentazione. –