2012-08-26 8 views

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.

+2

Czy to oznacza, że ​​profilowanie jest dokładniejsze niż pobieranie próbek, ale wymagałoby to więcej zasobów? – Parag

+0

Tak, zaktualizowałem odpowiedź. – npe

+6

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