web-dev-qa-db-fra.com

Différence entre l'échantillonnage et le profilage dans VisualVM

VisualVM possède deux onglets distincts pour l'échantillonnage et le profilage. Quelle est la différence entre l'échantillonnage et le profilage dans VisualVM?

153
Parag

Sampling signifie prendre beaucoup de vidages de threads et analyser les traces de pile. Ceci est généralement plus rapide, ne nécessite pas de modifications d'exécution dans votre bytecode (ce qui peut le casser), mais est également moins précis.

Profiling signifie instrumentation vos classes et méthodes, donc elles "rapportent" chaque fois qu'elles sont exécutées. Ceci est plus précis, car il compte chaque invocation de méthode instrumentée, pas seulement celles capturées lors du vidage. Cependant, l'instrumentation signifie que le bytecode de vos classes est modifié, ce qui peut casser votre programme. En fait, pour cette raison, l'utilisation du profilage sur de grands serveurs d'applications (comme JBoss ou WebLogic) entraîne souvent la mort ou le blocage de tout.

179
npe