Владимир Ситников — Профайлер в каждый дом

Случается, что код тормозит. Конечно, наш код идеален и проблема кроется в third-party библиотеках, но легче от этого не становится. Как понять причину медлительности? Как профилировать?

Профилирование кода — это не просто «открыть профайлер», а процесс, позволяющий своевременно отлавливать неоптимальный код на этапе разработки, тестирования и работе в production. Для некоторых случаев и System.out/perf4j/poormansprofiler могут оказаться хорошим решением. Но что делать с жалобой QA: «Вчера работало медленно»? Что делать с заказчиком, который «уже обжёгся на профайлере X и не согласен его ставить»? Сколько времени разработчик потратит на анализ профиля, прежде чем найдёт упоминание интересного ему кода?

В Java можно легко сделать собственный профайлер: Instrumentation API позволяет внедрить код в нужные классы, и переносимый байткод позволяет не задумываться о зоопарке платформ. В докладе мы рассмотрим, как эти возможности можно использовать для разработки собственного профайлера. Вы на примерах увидите, почему стандартные профайлеры могут не удовлетворять требованиям некоторых заказчиков, мы с вами напишем несложный профайлер, научим его писать журнал событий и посмотрим, какие ещё возможности можно использовать для более плотной интеграции профайлера с вашим решением.

  1. Владимир Ситников
    Восемь лет работает над производительностью и масштабируемостью NetCracker OSS — ПО, используемого операторами связи для автоматизации процессов управления сетью и сетевым оборудованием. Увлекается вопросами производительности Java и Oracle Database. В свободное время занимается бальными танцами. Воспитывает дочь.