Диагностические интерфейсы JVM, или Как сделать профайлер своими руками

Встреча JUG.ru с Алексеем Рагозиным в Санкт-Петербурге 14.05.2015

В Java экосистеме мы имеем богатейший арсенал профайлеров. Коммерческие и бесплатные, различные продукты соревнуются, чтобы завоевать расположение Java разработчиков.
Большинство этих профайлеров, тем не менее, используют одни и те же диагностические интерфейсы, предоставляемые JVM. И эти интерфейсы доступны для всех.

Зачем разработчику приложения может понадобиться доступ к диагностическим интерфейсам JVM?
Причины могут быть разные:
— добавить элементы самодиагностики в приложение;
— автоматизировать сбор диагностической информации;
— сделать свой профайлер заточенный под приложение.