Роман Елизаров и Павел Кислов проведут третий доклад "Не просто IDE: тренды в инструментах разработки и люди, которые их создают"!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤8🔥6😁1👌1
🎯 JEP 520: Метод-трейсинг и тайминг в JFR — замер времени конкретных методов без кода и агентов
В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и без сторонних Java-агентов.
🧠 Зачем это нужно?
Допустим, приложение долго стартует или внезапно теряет соединения с БД. Раньше приходилось:
– Логировать вручную
– Добавлять JFR-события в код
– Подключать агент через
– Пытаться угадать с sampling-профайлером
– Использовать Spring AOP и
Теперь всё можно сделать проще: точно, из коробки и с минимальной настройкой.
⚙️ Что добавили?
Два новых события в JFR:
🛑
🛑
И самое главное: всё настраивается фильтрами, без изменений в коде!
🛠 Пример использования
Допустим, вы хотите посмотреть, как часто и как долго вызывается HashMap::resize.
🛑 Запуск:
🛑 Анализ:
🛑 Пример вывода:
Как ещё можно использовать?
🛑 Замерить все <clinit> и понять, что тормозит:
🛑 Отслеживать методы с аннотацией @Get из JAX-RS:
🛑 Сравнивать, сколько раз и с каким временем выполнялся метод:
Какой результат?
После запуска вы получаете .jfr-файл, который можно:
– Просмотреть через
– Подгрузить в JDK Mission Control
– Анализировать удалённо через JMX/RemoteRecordingStream
В чём польза?
🛑 Быстро находим горячие методы
🛑 Точно отслеживаем, что вызывает
🛑 Проверяем гипотезу, стал ли метод быстрее после оптимизации
🛑 Отлаживаем проблемы без доступа к коду сторонних библиотек
Вывод
Можно будет не модифицировать код, городить прокси или запускать
В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и без сторонних Java-агентов.
🧠 Зачем это нужно?
Допустим, приложение долго стартует или внезапно теряет соединения с БД. Раньше приходилось:
– Логировать вручную
– Добавлять JFR-события в код
– Подключать агент через
-javaagent– Пытаться угадать с sampling-профайлером
– Использовать Spring AOP и
@Around-аспектыТеперь всё можно сделать проще: точно, из коробки и с минимальной настройкой.
⚙️ Что добавили?
Два новых события в JFR:
jdk.MethodTiming — считает вызовы, замеряет среднее, мин/макс время выполненияjdk.MethodTrace — пишет стек вызова и длительность каждого вызоваИ самое главное: всё настраивается фильтрами, без изменений в коде!
🛠 Пример использования
Допустим, вы хотите посмотреть, как часто и как долго вызывается HashMap::resize.
java -XX:StartFlightRecording=method-trace=java.util.HashMap::resize,filename=resize.jfr ...
jfr print --events jdk.MethodTrace resize.jfr
jdk.MethodTrace {
startTime = 00:39:26.379
duration = 0.00113 ms
method = java.util.HashMap.resize()
eventThread = "main"
stackTrace = [
java.util.HashMap.putVal(...)
java.util.HashMap.put(...)
...
java2d.J2Ddemo.main(String[]) line: 674
]
}
Как ещё можно использовать?
-XX:StartFlightRecording:method-timing=::<clinit>,filename=init.jfr
jcmd <pid> JFR.start method-timing=@jakarta.ws.rs.GET
<setting name="filter">
com.example.Foo::doSomething;
com.example.Bar::handle
</setting>
Какой результат?
После запуска вы получаете .jfr-файл, который можно:
– Просмотреть через
jfr print или jfr view– Подгрузить в JDK Mission Control
– Анализировать удалённо через JMX/RemoteRecordingStream
В чём польза?
FileDenoscriptor::closeВывод
Можно будет не модифицировать код, городить прокси или запускать
-javaagent. Достаточно задать нужный фильтр, чтобы точно знать, где и когда выполняется нужный метод.Please open Telegram to view this post
VIEW IN TELEGRAM
👍38🔥25❤7
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
😁27🔥13❤9👎2🤯2🤔1
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Новинки и перфоманс Java 25, паттерны и составные айдишники | Spring АйО Подкаст №28
– Введение в Jimmer ORM
– Java в 2025 году: взгляд на результаты опроса Stack Overflow
– JEP 520: Метод-трейсинг и тайминг в JFR — замер времени конкретных методов без кода и агентов
– Amplicode: Kotlin в Amplicode — полная поддержка из коробки
– В программе Joker первые доклады
– Работаем с конфигурациями в Spring микросервисах
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5❤2
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11😁9🔥6🤯3❤1
⚡️ Он помогает Java-разработчикам по всей стране! Интервью с Владимиром Плизга
На JPoint 2025 мы пообщались с Владимиром Плизга — инженером Tibbo Systems, спикером, тренером и автором Telegram-канала «Верхняя полка».
Владимир — настоящий энтузиаст: разрабатывает инструменты для упрощения жизни бэкенд-разработчиков, делится опытом на конференциях и митапах, пишет статьи и ведёт тренинги по производительности Java-приложений.
😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Это только начало — впереди ещё больше бесед с интересными людьми из мира Java и Spring.
На JPoint 2025 мы пообщались с Владимиром Плизга — инженером Tibbo Systems, спикером, тренером и автором Telegram-канала «Верхняя полка».
Владимир — настоящий энтузиаст: разрабатывает инструменты для упрощения жизни бэкенд-разработчиков, делится опытом на конференциях и митапах, пишет статьи и ведёт тренинги по производительности Java-приложений.
Это только начало — впереди ещё больше бесед с интересными людьми из мира Java и Spring.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20🔥9👍8
Эксперт Spring АйО, Илья Сазонов, подготовил статью:
Недавно на подкасте Spring АйО мы обсуждали новые свитчи в Джаве - с паттерн-матчингом и деструктуризацией. Я тогда ещё выразил мнение, что всё это неправославно, по-зумерски и отход от принципов ООП.
Не от инкапсуляции, полиморфизма и наследования, а вообще от подхода. Новые свитчи будут провоцировать разработчиков писать код по-новому, а не так, как завещали нам наши далёкие предки. С нарушением традиций, норм и устоев. Как учит Кейси Муратори, если вы понимаете о ком я.
Но какие они вообще были, эти устои? Каким было ООП, когда всё только началось и чем это отличается от свитчей, до которых мы в конце концов докатились?
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/934514/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5🔥4😁1
🔄 Kafka умеет синхронно. В Spring Boot
Apache Kafka — король асинхронного взаимодействия в микросервисных архитектурах. Но что если нужно получить ответ сразу?
Перевод от команды Spring АйО шаг за шагом покажет, как превратить Kafka в инструмент синхронной коммуникации — с настройкой
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/934936/
Apache Kafka — король асинхронного взаимодействия в микросервисных архитектурах. Но что если нужно получить ответ сразу?
Перевод от команды Spring АйО шаг за шагом покажет, как превратить Kafka в инструмент синхронной коммуникации — с настройкой
ReplyingKafkaTemplate, топиками для ответа и тайм-аутами.📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/934936/
❤19👍12🔥7👎3🤯3🤔2
👌 Конфигурация Spring Security на пальцах
В новом переводе от команды Spring АйО мы рассмотрим решение для регистрации и аутентификации пользователя через клиентское JavaScript-приложение с использованием инфраструктуры Spring Security, а также access и refresh токенов.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/935470/
В новом переводе от команды Spring АйО мы рассмотрим решение для регистрации и аутентификации пользователя через клиентское JavaScript-приложение с использованием инфраструктуры Spring Security, а также access и refresh токенов.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/935470/
🔥17❤12👍7👎1
Forwarded from Amplicode
Media is too big
VIEW IN TELEGRAM
Павел Кислов и Вячеслав Чернышов:
––––– Таймкоды –––––
00:00:00 – Хайлайты
00:00:39 – Вступление. О чём сегодня поговорим?
00:03:52 – Демо. Знакомимся с проектом, настраиваем окружение, изменяем модельку, пишем миграционные скрипты
00:16:13 – Демо. Пишем REST'ы! Много DTO, мапперов и бизнес-логики
00:56:42 – Демо. Тестируем написанное руками через HTTP-клиент
01:09:15 – Демо. Дебажим. Что-то поломали 🙁
01:15:45 – Демо. Проверяем исправления.
01:16:30 – Демо. Пишем интеграционные и unit тесты
01:28:03 – Закругляемся. Всем спасибо 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤7🔥4😁1
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
😁45🔥11👍7👎1