JVM TI: как сделать «плагин» для виртуальной машины

День 2 /  / Зал 1  /  RU / Для практикующих инженеров  /  asyncprofiler,jvmtitools

JVM Tool Interface — стандартный API для разработки всевозможных инструментов: профайлеров, отладчиков и диагностических утилит. Фактически это единственный легальный способ обратиться к JVM, будь то HotSpot или другая виртуальная машина.

Оказывается, JVM TI полезен не только при создании агентов. В докладе мы разберём, в каких случаях JVM TI может пригодиться разработчику, в том числе в обычных Java-приложениях. Познакомимся с возможностями интерфейса, включая нововведения из Java 9 и 11, и напишем собственный инструмент.

Несмотря на свою мощь, JVM TI не лишён недостатков. Прежде всего он подразумевает написание кода на C/C++. Но кроме того, с ним связана масса нетривиальных особенностей и даже JVM-багов. На реальных примерах из практики мы увидим, с какими проблемами JVM TI сталкиваются программисты и как эти проблемы решить.



Андрей Паньгин
Одноклассники

Ведущий программист в компании «Одноклассники», специализирующийся на разработке высоконагруженных Java-серверов. Благодаря опыту работы в Oracle в команде HotSpot, знает JVM как свои пять пальцев и охотно делится экспертизой на конференциях. Автор проектов one-nio, async-profiler, а также лидер по ответам в категории #JVM на Stack Overflow.

Контакты