consdata.com
Blog techniczny Blog biznesowy Dział HR
EN
jdk-flight-recorder

Czy wiesz, jak wykonać profilowanie aplikacji za pomocą JDK Flight Recorder?

author Jakub Wilczewski
24 lipca 2026

Podczas przeprowadzania testów wydajnościowych czasami napotykamy sytuację, w której ich wyniki nie są zadowalające. Pojawia się wtedy pytanie, jak sprawdzić, co dzieje się wewnątrz aplikacji i na co zużywa ona najwięcej czasu. W takiej sytuacji możemy np.:

  • analizować logi,
  • analizować metryki, jeżeli aplikacja takie posiada,
  • zbierać metryki za pomocą agenta OpenTelemetry.

Innym sposobem jest uruchomienie samplera zbierającego statystyki z wątków pracujących w aplikacji. W tym celu możemy użyć np. VisualVM. Kiedyś wchodził on w skład JDK, dlatego jest dość popularny. Ma jednak pewną wadę - trzeba go podłączyć do działającego procesu javy, co może być utrudnione, jeżeli testy przeprowadzamy na środowisku, do którego nie mamy takiego dostępu.

Wtedy z pomocą może przyjść nam JDK Flight Recorder – narzędzie wbudowane w JDK. Warto zaznaczyć, że posiadają je także JDK budowane przez niezależnych dostawców.

Zbieranie danych

Aby uruchomić zbieranie danych za pomocą JFR, konieczne jest dodanie opcji uruchomieniowych dla testowanej aplikacji. Na przykład jeżeli aplikacja wdrażana jest na serwerze Tomcat, możemy to zrobić poprzez edycję pliku bin/setenv.sh. Do zmiennej CATALINA_OPTS dodajemy wówczas odpowiednią konfigurację:

CATALINA_OPTS="$CATALINA_OPTS -XX:+FlightRecorder -XX:StartFlightRecording=filename=/var/log/profiling/profiling.jfr,delay=240s,duration=300s"

W tym przypadku dane profilowania zostaną zapisane w pliku /var/log/profiling/profiling.jfr. Profilowanie rozpocznie się po 240 sekundach od uruchomienia aplikacji (parametr delay) i potrwa 300 sekund (parametr duration). Ważne, aby aplikacja miała uprawnienia do zapisu we wskazanym pliku. Jako że zazwyczaj nie chcemy profilować samego startu aplikacji, w takiej sytuacji przydatne jest opóźnienie rejestrowania.

Opis poszczególnych parametrów możemy znaleźć na stronie DEV Java - Configuring the JDK Flight Recorder.

Analiza danych

Zebrane dane możemy analizować za pomocą narzędzia JDK Mission Control dostępnego na stronie Oracle. Z punktu widzenia analizy tego, gdzie aplikacja spędziła najwięcej czasu, interesować nas może ekran Java Application→Method Profiling, który pokazuje najczęściej używane metody podczas samplowania wątków. Pamiętać należy o tym, żeby podczas zbierania danych uruchomione były testy, które obciążają aplikację.

Analiza aplikacji z narzędzia JDK Mission Control

Najnowsze wpisy

  • Czy wiesz, jak wykonać profilowanie aplikacji za pomocą JDK Flight Recorder?
  • Czy wiesz, jak analizować i optymalizować zależności w bundle?
  • Czy wiesz, jak działa mechanizm uploadu plików w Springu?
Dołącz do nas

  • SENIOR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 14 900 - 20 590 PLN brutto
    B2B 19 680 - 27 220 PLN netto
  • REGULAR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 11 300 - 15 900 PLN brutto
    B2B 14 950 - 21 000 PLN netto
  • ZOBACZ WSZYSTKIE OGŁOSZENIA

Podobne wpisy

post-image
CommonJS

Czy wiesz, jak analizować i optymalizować zależności w bundle?

Pokażę, jak analizować plik stats.json i skutecznie zmniejszać rozmiar bundle'a w Angularze poprzez optymalizację importów CommonJS oraz wykorzystanie ESM (lodash-es).

author
Aleksander Burzec 16 cze 2026
post-image
spring boot

Czy wiesz, jak działa mechanizm uploadu plików w Springu?

Poznaj, jak w Springu działa upload plików, które parametry multipart warto ustawić i jak bezpiecznie przechowywać pliki po zakończeniu żądania.

author
Bartosz Pietrowiak 22 maj 2026
post-image
angular

Czy wiesz, jak stworzyć klikalną kartę (Card component) zgodnie z WCAG?

Budowa karty, która jest w całości klikalna, a jednocześnie zawiera w sobie dodatkowe akcje (jak przycisk „Ulubione”), to jedno z częstych wyzwań UX/UI.

author
Mariusz Bartosik 13 maj 2026
Dołącz do nas

  • SENIOR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 14 900 - 20 590 PLN brutto
    B2B 19 680 - 27 220 PLN netto
  • REGULAR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 11 300 - 15 900 PLN brutto
    B2B 14 950 - 21 000 PLN netto
  • ZOBACZ WSZYSTKIE OGŁOSZENIA
consdata.com
  • Kontakt

    • sales@consdata.com
    • +48 61 41 51 000

  • Biuro

    • K9Office
      Krysiewicza 9/14
      61-825 Poznań
      Polska

  • Rozwiązania

    • Eximee
    • Kouncil
  • Blog Dołącz do nas
Copyright © 2024 Consdata. All rights reserved. Privacy Policy & Cookies
Chcemy używać plików cookie oraz skryptów podmiotów trzecich do polepszania funkcjonowania tej strony Zgadzam się