[2026-06-23] Czy wiesz, jak wykonać profilowanie aplikacji za pomocą JDK Flight Recorder?#286
[2026-06-23] Czy wiesz, jak wykonać profilowanie aplikacji za pomocą JDK Flight Recorder?#286sirtekyt wants to merge 1 commit into
Conversation
…JDK Flight Recorder?
| --- | ||
| layout: post | ||
| title: "Czy wiesz, jak wykonać profilowanie aplikacji za pomocą JDK Flight Recorder?" | ||
| date: 2026-06-16T08:00:00+02:00 |
| lang: pl | ||
| author: jwilczewski | ||
| image: /assets/img/posts/2026-06-23-czy-wiesz-jak-wykonac-profilowanie-aplikacji-za-pomoca-jdk-flight-recorder/thumbnail.webp | ||
| description: "Przeprowadzając testy wydajnościowe czasami napotykamy sytuację, w której wyniki testów nie są zadowalające. Powstaje wtedy pytanie jak sprawdzić co dzieje się wewnątrz aplikacji, na co aplikacja zużywa najwięcej czasu." |
There was a problem hiding this comment.
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.
| - profiling | ||
| --- | ||
|
|
||
| Przeprowadzając testy wydajnościowe, czasami napotykamy sytuację, w której wyniki testów nie są zadowalające. |
There was a problem hiding this comment.
Podczas przeprowadzania testów wydajnościowych czasami napotykamy sytuację, w której ich wyniki nie są zadowalające.
| --- | ||
|
|
||
| Przeprowadzając testy wydajnościowe, czasami napotykamy sytuację, w której wyniki testów nie są zadowalające. | ||
| Powstaje wtedy pytanie, jak sprawdzić, co dzieje się wewnątrz aplikacji i na co aplikacja zużywa najwięcej czasu. |
There was a problem hiding this comment.
Pojawia się wtedy pytanie, jak sprawdzić, co dzieje się wewnątrz aplikacji i na co zużywa ona najwięcej czasu.
| - zbierać metryki za pomocą agenta OpenTelemetry. | ||
|
|
||
| Innym sposobem jest uruchomienie samplera zbierającego statystyki z wątków pracujących w aplikacji. | ||
| W tym przypadku możemy użyć np. [VisualVM](https://visualvm.github.io/). Kiedyś wchodził on w skład JDK, dlatego jest dość popularny. |
|
|
||
| Innym sposobem jest uruchomienie samplera zbierającego statystyki z wątków pracujących w aplikacji. | ||
| W tym przypadku możemy użyć np. [VisualVM](https://visualvm.github.io/). Kiedyś wchodził on w skład JDK, dlatego jest dość popularny. | ||
| Ma jednak wadę polegającą na tym, że trzeba go podłączyć do działającego procesu javy co może być utrudnione, jeżeli testy przeprowadzamy na środowisku, |
There was a problem hiding this comment.
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,
| Ma jednak wadę polegającą na tym, że 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. | ||
|
|
||
| Z pomocą może przyjść nam [JDK Flight Recorder](https://dev.java/learn/jvm/jfr/configure/) – narzędzie wbudowane w JDK. |
There was a problem hiding this comment.
Wtedy z pomocą może przyjść nam ...
| ## 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`. |
There was a problem hiding this comment.
Przecinki zamienić:
Na przykład jeżeli aplikacja wdrażana jest na serwerze Tomcat, możemy to zrobić poprzez edycję pliku bin/setenv.sh.
|
|
||
| ## Analiza danych | ||
|
|
||
| Zebrane dane możemy analizować za pomocą narzędzia JDK Mission Control, dostępnego na stronie [Oracle - JDK Mission Control](https://www.oracle.com/java/technologies/jdk-mission-control.html). |
There was a problem hiding this comment.
Usunąć przecinek:
Zebrane dane możemy analizować za pomocą narzędzia JDK Mission Control dostępnego na stronie Oracle - JDK Mission Control.
| ## Analiza danych | ||
|
|
||
| Zebrane dane możemy analizować za pomocą narzędzia JDK Mission Control, dostępnego na stronie [Oracle - JDK Mission Control](https://www.oracle.com/java/technologies/jdk-mission-control.html). | ||
| Z punktu widzenia analizy tego, gdzie aplikacja spędziła najwięcej czasu interesować nas może ekran Java Application→Method Profiling, |
There was a problem hiding this comment.
Przecinek:
Z punktu widzenia analizy tego, gdzie aplikacja spędziła najwięcej czasu, interesować nas może ekran Java Application→Method Profiling,
No description provided.