Intellij Idea - profilowanie

Profiler zapewnia wgląd w aplikację, taką jak jej procesor, pamięć i użycie sterty. Zawiera również szczegółowe informacje o wątkach aplikacji. W tym rozdziale omówiono użycie narzędzia VisualVM do profilowania aplikacji Java. Może profilować jednostki, takie jak procesor i sterta.

Zaleca się, aby czytelnicy tego samouczka zapoznali się z pojęciami dotyczącymi profilera aplikacji.

Wprowadzenie

VisualVM to narzędzie wizualne, które integruje narzędzia JDK i zapewnia potężne możliwości profilowania. Umożliwia generowanie i analizowanie danych sterty, śledzenie wycieków pamięci, monitorowanie modułu odśmiecania pamięci oraz wykonywanie profilowania pamięci i procesora.

Korzyści

  • Interfejs wizualny dla lokalnych i zdalnych aplikacji Java działających na JVM.

  • Monitorowanie wykorzystania pamięci aplikacji i zachowania aplikacji w czasie wykonywania.

  • Monitorowanie wątków aplikacji

  • Analiza alokacji pamięci dla różnych aplikacji.

  • Zrzuty wątków - bardzo przydatne w przypadku zakleszczeń i warunków wyścigu.

  • Zrzuty sterty - bardzo przydatne w analizie alokacji pamięci sterty.

Konfiguracja

W tej sekcji dowiemy się, jakie kroki należy wykonać, aby skonfigurować VisualVM. Kroki są następujące -

  • Pobierz go stąd .

  • Rozpakuj plik zip.

  • Przejdź do pliku etc / visualvm.conf i dodaj następujący wiersz w tym pliku -

visualvm_jdkhome=<path of JDK>
  • Jeśli pakiet JDK jest zainstalowany w C:\Program Files\Java\jdk-9.0.1 katalog powinien wyglądać tak -

visualvm_jdkhome="C:\Program Files\Java\jdk-9.0.1"

Aplikacja monitorująca

Zobaczmy teraz, jak monitorować aplikację. Rozważ następujące kroki, aby zrozumieć to samo -

  • Kliknij dwukrotnie plik visualvm.exe.
  • Wybierz aplikację z lewego panelu.
  • Wybierz kartę monitora.

Zostaniesz przekierowany do okna, w którym uzyskasz szczegółowe informacje na temat procesora, sterty, klas i wątków. Aby być konkretnym, najedź myszą na dowolny wykres. Na powyższym zrzucie ekranu widać użycie Heap.

Statystyki dotyczące wątków

Aplikacja Java może zawierać wiele wątków wykonania. Aby dowiedzieć się więcej o wątkach, wybierz kartę Wątki danej aplikacji. Daje różne statystyki dotyczące wątków, takie jak liczba wątków na żywo i wątków demonów. Różne stany wątku to Uruchomiony, Śpiący, Oczekiwanie, Parkowanie i Monitorowanie.

Aplikacja do pobierania próbek

VisualVM obsługuje procesor, próbkowanie pamięci i wykrywanie wycieków pamięci. Aby pobrać przykładową aplikację, wybierz aplikację i wybierz przykładową zakładkę -

Próbkowanie procesora

Aby pobrać próbkowanie CPU, kliknij przycisk CPU, jak pokazano na poniższym zrzucie ekranu -

Profilowanie pamięci

Aby profilować pamięć, kliknij przycisk Pamięć, jak pokazano na poniższym zrzucie ekranu -

Wycieki pamięci

Wyciek pamięci występuje, gdy uruchomiona aplikacja powoli wypełnia stertę obiektami, które nie są automatycznie usuwane przez program.

Jeśli obiekt, który nie jest używany przez program, nie zostanie usunięty, pozostanie w pamięci, a GC nie może odzyskać swojej przestrzeni. Jeśli liczba bajtów i liczba wystąpień w aplikacji miałaby stale i znacznie wzrastać w programie, aż do wyczerpania całej przestrzeni, może to wskazywać na wyciek pamięci.

Aplikacja do profilowania

W tej sekcji dowiemy się, jak profilować aplikację. Aby sprofilować aplikację, wybierz aplikację z lewego panelu i kliknij kartę profilu -

Profilowanie procesora

Aby wykonać profilowanie procesora, kliknij przycisk procesora, jak pokazano na poniższym zrzucie ekranu -

Profilowanie pamięci

Aby wykonać profilowanie procesora, kliknij przycisk procesora, jak pokazano na poniższym zrzucie ekranu -