Java разработчики привыкли: утекает память — запускай Eclipse Memory Analyzer, проблемы с производительностью — профилируй с YourKit. Но зачастую стандартных средств не хватает, например, когда ошибка проявляется только в production, куда и дебаггером не подключиться, и 10-гигабайтный heap dump не снять без перебоев в обслуживании.
Сделать собственный инструмент, заточенный под конкретную проблему — легко! Порой даже быстрее, чем найти готовое решение в интернете. JDK включает богатый инструментарий для написания всевозможных средств отладки и мониторинга: JVMTI, Dynamic Attach Mechanism, Serviceability Agent, Instrumentation API и т.п. Мы научимся ими пользоваться, узнаем, как устроены изнутри jstack, jmap и jstat, и даже напишем подобную утилиту сами во время доклада. За основу примеров взяты случаи из практики в «Одноклассниках», а также реальные проблемы разработчиков, обсуждаемые на Stack Overflow.