Skip to content

[2026-06-23] Czy wiesz, jak wykonać profilowanie aplikacji za pomocą JDK Flight Recorder?#286

Open
sirtekyt wants to merge 1 commit into
masterfrom
jdk-flight-recorder
Open

[2026-06-23] Czy wiesz, jak wykonać profilowanie aplikacji za pomocą JDK Flight Recorder?#286
sirtekyt wants to merge 1 commit into
masterfrom
jdk-flight-recorder

Conversation

@sirtekyt

Copy link
Copy Markdown
Contributor

No description provided.

---
layout: post
title: "Czy wiesz, jak wykonać profilowanie aplikacji za pomocą JDK Flight Recorder?"
date: 2026-06-16T08:00:00+02:00

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

przebić date

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."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

W tym przypadku -> W tym celu


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,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Przecinek:

Z punktu widzenia analizy tego, gdzie aplikacja spędziła najwięcej czasu, interesować nas może ekran Java Application→Method Profiling,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants