Unterschied zwischen Sampling und Profiling in jVisualVM

Lesezeit: 1 Minute

Benutzer-Avatar
Parag

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

Benutzer-Avatar
nein

Sampling bedeutet, viele Thread-Dumps zu erstellen und Stack-Traces zu analysieren. Dies ist normalerweise schneller, erfordert keine Laufzeitänderungen in Ihrem Bytecode (was ihn beschädigen kann), ist aber auch weniger genau.

Profiling meint Instrumentierung Ihre Klassen und Methoden, damit sie “melden”, wann immer sie ausgeführt werden. Dies ist genauer, da es jeden Aufruf einer instrumentierten Methode zählt, nicht nur diejenigen, die beim Erstellen des Speicherauszugs abgefangen werden. Instrumentierung bedeutet jedoch, dass der Bytecode Ihrer Klassen geändert wird, und dies kann Ihr Programm beschädigen. Aus diesem Grund führt die Verwendung von Profiling auf großen Anwendungsservern (wie JBoss oder WebLogic) häufig dazu, dass alles stirbt oder hängt.

  • Würde dies bedeuten, dass die Profilerstellung genauer ist als das Sampling, aber mehr Ressourcen erfordern würde?

    – Parag

    26. August 2012 um 12:33 Uhr

  • Ich habe festgestellt, dass Sampling jedes Mal mehr als genau genug ist, wenn ich es verwendet habe, um die Methoden mit schlechter Leistung zu lokalisieren. Ich persönlich verwende niemals Profiling.

    – Marquez

    6. Februar 2017 um 16:30 Uhr


1344630cookie-checkUnterschied zwischen Sampling und Profiling in jVisualVM

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy