Универсальные профилировщики и где они обитают

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

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

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


Иван Углянский
Excelsior LLC

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

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

В качестве хобби преподает в НГУ курсы по C/C++ и иногда пишет посты в Excelsior JET Team Blog.  

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