В нативный код из уютного мира Java: Путешествие туда и обратно

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

Все мы любим Java и другие управляемые языки, но иногда их бывает просто недостаточно. Нужен доступ к библиотеке машинного обучения, написанной исключительно на С? Или всего-то хочется позвать небольшой метод из OS API? А может, для одного из модулей вы хотите получить большую производительность, чем вы когда-либо сможете выжать из Java? Тогда вам прямой путь в нативный код!

Вроде все просто — пишем нативный метод, загружаем библиотеку, вызываем, и дело в шляпе! Но вот беда: JVM начала крашиться в случайных местах, производительность упала ниже прежнего, а ваш репозиторий заполонили бесконечные сишные файлы, испещренные буквами J-N-I. Что же пошло не так?

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

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

Классический хардкорный доклад из Академгородка, посвященный аналитическому сравнению и ретроспективному анализу различных способов вызова неуправляемого кода из управляемого, и обратно.

Скачать презентацию

Спикер(ы)

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

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

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

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

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

Приглашенные эксперты

Андрей Когунь
КРОК

В IT более 15 лет. Руководитель группы Java-разработчиков в КРОК. За свою карьеру принял участие в большом количестве проектов по заказной разработке, в основном систем электронного документооборота и автоматизации бизнес-процессов для ряда крупных российских компаний в роли ведущего разработчика и архитектора. Преподает для студентов московских вузов курсы по основам разработки с применением Java-технологий. Основатель и организатор встреч московского сообщества Java-разработчиков JUG.MSK.