Загрузка страницы

Андрей Паньгин — Вызов нативных методов без JNI-оверхеда

Ближайшая конференция: JPoint 2024, 17 апреля (online), 24–25 апреля (offline, Москва)
Подробности и билеты: https://cutt.ly/AwDEziay
— —
Есть немало способов вызвать из Java код, написанный на другом языке: JNI, JNA, JNR-FFI и, конечно, долгожданный проект Panama. Проблема в том, что с любым из этих интерфейсов переход из Java в Native сопряжен с накладными расходами. Чаще всего оверхедом можно пренебречь, но бывают случаи, когда он превышает даже стоимость полезной работы.

До недавнего времени в погоне за производительностью Java-хакеры применяли недокументированное расширение HotSpot, однако в новых версиях JDK его уже нет. На замену удаленным Critical Natives была разработана библиотека для быстрого вызова внешних функций. В ее основе лежит JVMCI — интерфейс для подключения сторонних JIT-компиляторов.

В докладе мы познакомимся с JVMCI, увидим, чем он поможет в ускорении нативных вызовов, разберем ограничения подхода и сравним производительность с альтернативами.

#jni #native #hotspot #safepoint

Видео Андрей Паньгин — Вызов нативных методов без JNI-оверхеда канала JPoint, Joker и JUG ru
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
10 марта 2023 г. 17:16:59
00:49:23
Другие видео канала
Mark West — Building a Smart Security Camera with Raspberry Pi Zero, Java and AWSMark West — Building a Smart Security Camera with Raspberry Pi Zero, Java and AWSCay Horstmann — Feature evolution in Java 13 and beyondCay Horstmann — Feature evolution in Java 13 and beyondInterview and Q&A with Ted NewardInterview and Q&A with Ted NewardThomas Wuerthinger — Maximizing performance with GraalVMThomas Wuerthinger — Maximizing performance with GraalVMCharles Nutter — Going Native: Foreign Functions on the JVMCharles Nutter — Going Native: Foreign Functions on the JVMSimon Ritter — Getting the most from modern JavaSimon Ritter — Getting the most from modern JavaAndres Almiray — JReleaser — releasing at the speed of lightAndres Almiray — JReleaser — releasing at the speed of lightThomas Wuerthinger, Oleg Šelajev — Workshop: GraalVM (part 1)Thomas Wuerthinger, Oleg Šelajev — Workshop: GraalVM (part 1)Дмитрий Бундин — Повышаем производительность файлового I/O для JVM на LinuxДмитрий Бундин — Повышаем производительность файлового I/O для JVM на LinuxЧто такое JokerЧто такое JokerАлексей Рагозин —  Как и зачем эмулировать распределённый кластер в JVMАлексей Рагозин — Как и зачем эмулировать распределённый кластер в JVMJiří Holuša — Intel Optane DC and Java: Lessons learned in practiceJiří Holuša — Intel Optane DC and Java: Lessons learned in practiceShelley Lambert — Dismantling technical debt and hubrisShelley Lambert — Dismantling technical debt and hubrisTobi Ajila — The Eclipse OpenJ9 JVM  a deep dive!Tobi Ajila — The Eclipse OpenJ9 JVM a deep dive!Григорий Кошелев — Интеграция виртуальных машин  NET и JavaГригорий Кошелев — Интеграция виртуальных машин NET и JavaГригорий Кошелев — Когда всё пошло по Кафке 2: Разгоняем продьюсеровГригорий Кошелев — Когда всё пошло по Кафке 2: Разгоняем продьюсеровАлександр Христофоров — Дешевле, надёжнее, проще: хранение петабайтов видео и фото в ОдноклассникахАлександр Христофоров — Дешевле, надёжнее, проще: хранение петабайтов видео и фото в ОдноклассникахЛеонид Старцев — Как эволюционировать свою библиотеку на Kotlin безболезненно для клиентовЛеонид Старцев — Как эволюционировать свою библиотеку на Kotlin безболезненно для клиентовGeoffrey De Smet — AI maintenance scheduling with OptaPlanner on QuarkusGeoffrey De Smet — AI maintenance scheduling with OptaPlanner on QuarkusНикита Поваров, Роман Поборчий — Самопишущийся кодНикита Поваров, Роман Поборчий — Самопишущийся кодSteve Poole — Practical steps for creating safer software (Code included)Steve Poole — Practical steps for creating safer software (Code included)
Яндекс.Метрика