Почему JNI-вызовы собственных методов медленнее, чем аналогичные методы в sun.misc.Unsafe?

Я разрабатываю реализацию JNI, аналогичную sun.misc.Unsafe, но с расширенным управлением памятью.

Почему время вызова собственных методов из sun.misc.Unsafe и из моей разработанной библиотеки сильно различается?

Некоторые цифры:
sun.misc.Unsafe.getInt (адрес) принимает ~ 1 нс
когда мой аналогичный метод занимает ~ 10 нс

Обе реализации совершенно одинаковы, следуя исходному коду OpenJDK, просто возвращая переменную по указателю. Оба зарегистрированы одинаково.

Как я могу ускорить вызовы JNI? Что делает небезопасную производительность такой особенной?

Спасибо,
Юрий /

9
задан Boann 4 August 2019 в 12:22
поделиться