2016-09-23 9 views

Odpowiedz

10

Ogólnie:

profilera pracuje cały czas, więc to daje pełną stosu wywołań; w dowolnym momencie.

Próbnik pobiera tylko "migawki" w różnych momentach.

Rzecz polega na tym, że gdy "profilujesz" wszystko, to znacznie spowalnia twój JVM; i tworzy ogromne ilości danych w ciągu kilku sekund. Pomyśl o tym: profiler zapisze każde i każde wywołanie metody, które ma miejsce!

Najpierw należy najpierw użyć samplera, gdy "nie masz pojęcia", co dzieje się w aplikacji. A potem masz tylko nadzieję, że próbki coś ci powiedzą; jak "hej, w naszych 10 000 próbkach, przez większość czasu używamy tej metody, dlaczego?" Ale gdy tylko lepiej zrozumiesz, do czego "polujesz", spróbujesz wykonać pełny profiler, aby uchwycić cały łańcuch połączeń prowadzący do jakiejś metody.

A potem jest jakaś "pośrednia płaszczyzna" - gdzie profilujesz "wszystko", ale wyklucza rzeczy o numerach. Innymi słowy: większość profilerów pozwala na użycie metod profili na klasach w tej lub innej paczce. Ale oczywiście - wyłączenie pakietów/hierarchii ma sens tylko wtedy, gdy masz już całkiem niezłe poczucie kierunku, który zamierzasz zbadać.

+0

Brzmi świetnie. – Jason

Powiązane problemy