Андрей Паньгин, Вадим Цесько - JVM-профайлер с чувством такта
ฝัง
- เผยแพร่เมื่อ 6 ก.ย. 2024
- Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября (Санкт-Петербург + трансляция).
Подробности и билеты: jrg.su/Ypf1HW
- -
. . . . Все Java-профайлеры в той или иной степени лукавят, потому как средств JDK заведомо не хватает, чтобы точно узнать, на что тратятся такты процессора. Даже «честные» профайлеры, основанные на внутренних интерфейсах HotSpot JVM, не расскажут всей правды. Остаётся прибегнуть к аппаратным счётчикам и функциям ядра, но вот беда: они ничего не знают о Java-коде. Мы обсудим различные подходы к профилированию: JVM TI, AsyncGetCallTrace, perf_events и Flame Graphs; разберём принципы их работы, достоинства и ограничения, а также найдём способ взять лучшее от каждого из них. В завершение рассмотрим, как Одноклассники профилируют в продакшене весь стек от Java-кода до ядра Linux.