webentwicklung-frage-antwort-db.com.de

Unterschied zwischen Sampling und Profiling in VisualVM

VisualVM verfügt über zwei separate Registerkarten für Sampling und Profiling. Was ist der Unterschied zwischen Sampling und Profiling in VisualVM?

153
Parag

Sampling bedeutet, dass viele Thread-Dumps erstellt und Stack-Traces analysiert werden. Dies ist in der Regel schneller, erfordert keine Laufzeitänderungen in Ihrem Bytecode (was zu Fehlern führen kann), ist aber auch weniger genau.

Profiling bedeutet instrumentieren Ihre Klassen und Methoden, so dass sie "berichten", wann immer sie ausgeführt werden. Dies ist genauer, da jeder Aufruf der instrumentierten Methode gezählt wird, nicht nur die, die beim Erstellen des Speicherauszugs abgefangen wurden. Die Instrumentierung bedeutet jedoch, dass der Bytecode Ihrer Klassen geändert wird. Dies kann Ihr Programm beschädigen. Aus diesem Grund führt die Profilerstellung auf großen Anwendungsservern (wie JBoss oder WebLogic) häufig dazu, dass alles abstürzt oder hängen bleibt.

179
npe