Как сделать встроенный в JVM профайлер, который не боится AOT-компиляции?

День 1 /  / Зал 2  /  RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.  /  Performance,VM,Runtime

Комментарий Программного комитета:

Редкий доклад о профилировании в AOT, включая темы вроде того, чем приходится платить за универсальность профилировщика. Иван — разработчик Excelsior c экспертизой в AOT. Даже если вы до этого не пользовались Excelsior JET, доклад будет полезен, ведь теперь AOT появился в новом OpenJDK. Наличие этого доклада поддерживает общую идею собрать на JPoint всех звёзд мира виртуальных машин и рантаймов.

Существует множество разных способов профилирования Java-кода и профилировщиков, которые позволяют это делать. Недавно нам понадобилось собирать профиль приложений, запускаемых на Excelsior JET. При этом делать это нужно было на всех поддерживаемых системах и архитектурах, без перекомпиляции приложения, да еще и с приемлемой производительностью. Оказалось, что привычные способы профилирования одновременно под все эти пункты не подходят, поэтому нужно было придумать что-то свое.

В докладе расскажем:

  • зачем JVM с AOT понадобился встроенный профайлер;
  • какие вообще есть способы профилирования Java-кода и подходят ли они для случая AOT-компиляции;
  • что можно себе позволить, если профилировать код изнутри JVM;
  • чем пришлось заплатить за универсальность получившегося профилировщика.

Скачать презентацию
Иван Углянский
Excelsior LLC

Работает в компании Excelsior c 2011 года, является одним из разработчиков Excelsior JET: сертифицированной реализации Java SE, основанной на оптимизирующей AOT-компиляции.

В основном занимается рантаймом: GC, загрузка классов, поддержка многопоточности, профилирование и т. д. Кроме того, поддерживает плагин для отладки JET-compiled приложений в GDB и иногда пишет посты в Excelsior JET Team Blog.

Также является одним из основателей и лидеров JUGNsk — официальной Java User Group в Новосибирске, организовывает Java-митапы и другие мероприятия.

В качестве хобби преподает в НГУ курсы по C/C++.

Наши контакты