VisualVM verfügt über zwei separate Registerkarten für Stichproben und Profilerstellung. Was ist der Unterschied zwischen Sampling und Profilerstellung in VisualVM?
Unterschied zwischen Sampling und Profiling in jVisualVM
Parag
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