VisualVM ma dwie oddzielne zakładki do pobierania próbek i profilowania. Czy ktoś może mi pomóc w ustaleniu różnicy między próbkowaniem a profilowaniem w VisualVM?Różnica między próbkowaniem a profilowaniem w jVisualvm
141
A
Odpowiedz
166
Sampling
oznacza wykonywanie wielu zrzutów wątku i analizowanie śladów stosu. Zwykle jest to szybsze, nie wymaga zmian środowiska wykonawczego w kodzie bajtowym (który może go złamać), ale jest również mniej dokładne.
Profiling
oznacza instrumenting Twoje zajęcia i metody, więc "zgłaszają", gdy są uruchomione. Jest to dokładniejsze, ponieważ liczy się każde wywołanie oprzyrządowanej metody, nie tylko te wychwycone po wykonaniu zrzutu. Jednak oprzyrządowanie oznacza, że kod bajtowy twoich lekcji zostanie zmieniony, co może złamać twój program. Właściwie z tego powodu używanie profilowania na dużych serwerach aplikacji (takich jak JBoss lub WebLogic) często powoduje, że wszystko umiera lub zwisa.
Czy to oznacza, że profilowanie jest dokładniejsze niż pobieranie próbek, ale wymagałoby to więcej zasobów? – Parag
Tak, zaktualizowałem odpowiedź. – npe
Zauważyłem, że próbkowanie jest wystarczająco dokładne za każdym razem, gdy używam go do wskazywania złych metod wykonywania. Osobiście nigdy nie używam profilowania. – Marquez