JFR для профилирования
Профилирование любого Java-приложения встроенным Flight Recorder — без внешних инструментов.
Сравнение кода
✕ Java 8
// Install VisualVM / YourKit / JProfiler // Attach to running process // Configure sampling // Export and analyze // External tool required
✓ Java 9+
// Start with profiling enabled
$ java -XX:StartFlightRecording=
filename=rec.jfr MyApp
// Or attach to running app:
$ jcmd <pid> JFR.start
Заметили проблему в этом коде? Сообщите нам.
Почему современный подход лучше
Встроен
Никаких внешних профилировщиков для установки или лицензирования.
Минимальные накладные расходы
~1 % влияния на производительность — безопасно для использования в продакшене.
Богатый набор событий
CPU, память, GC, потоки, ввод-вывод, блокировки и пользовательские события.
Старый подход
Внешний профилировщик
Современный подход
Java Flight Recorder
Начиная с JDK
9
Сложность
Средний
Поддержка JDK
JFR для профилирования
Доступно
Широко доступно начиная с JDK 9/11 (открытый исходный код с версии 11)
Как это работает
Java Flight Recorder (JFR) — инструмент профилирования, встроенный в JVM с минимальными накладными расходами. Он фиксирует события CPU, памяти, GC, ввода-вывода, потоков и пользовательские события с минимальным влиянием на производительность (~1%).
Связанная документация