powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / jni, "native" performance
8 сообщений из 8, страница 1 из 1
jni, "native" performance
    #39239205
it_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос к java-экспертам относительно производительности native вызовов.

В моем понимании, переход между "состоянием" java -- native дорогой, т.к. выполняется дополнительный служебный код.
Вызов native метода дорогой, т.к. происходит "переход состояния". Из native вызов java-метода дорого, т.к. снова происходит обратный "переход состояния".

Таким образом, частое дергание jni приведет к деградации производительности.

Теперь вопрос, вызов native системных библиотек оптимизирован?
напримр, ConcurrentHashMap (jdk7) везде для вычисления сегмента -- Unsafe native, по несколько раз;
Или get/put/putIfAbsent/containsKey.
AtomicXXX , cas ы используют native.

что можно почитать на эту тему?

спасибо
...
Рейтинг: 0 / 0
jni, "native" performance
    #39239221
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it_devВ моем понимании, переход между "состоянием" java -- native дорогой, т.к. выполняется дополнительный служебный код.
Вызов native метода дорогой, т.к. происходит "переход состояния". Из native вызов java-метода дорого, т.к. снова происходит обратный "переход состояния".
Что за "состояние" и почему по-вашему должен быть этот самый "переход"?
Да, в некоторых случаях JNI может привести к деградации производительности. Но это не связано ни с какими "переходами состояний".

it_devчто можно почитать на эту тему?
Первая же ссылка из гугла
http://stackoverflow.com/a/7809300
...
Рейтинг: 0 / 0
jni, "native" performance
    #39239277
it_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, спасибо,
да, эту ссылку я видел.
"переход состояния" - мой только что изобретенный некорректный термин

1. "переход состояния" из native в java:
FindClass()
GetFieldID()
GetMethodId()
GetStaticMethodID()

авторthe call to get the field or method can require significant work in the JVM, because fields and methods might have been inherited from superclasses, making the JVM walk up the class hierarchy to find them... Similarly, looking up class objects can be expensive, so they should be cached as well.

2. "переход состояния" (java -> native & native -> java) == copy arrays

more obstacles:
https://www.ibm.com/developerworks/library/j-jni/

хотелось больше деталей по поводу системных библиотек, что если мы часто делаем get/put/etc для ConcurrentHashMap?
эти вызовы jni оптимизированы? или такие же, как и обычные?
...
Рейтинг: 0 / 0
jni, "native" performance
    #39239302
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it_devхотелось больше деталей по поводу системных библиотек, что если мы часто делаем get/put/etc для ConcurrentHashMap?
эти вызовы jni оптимизированы? или такие же, как и обычные?
Да, эти вызовы оптимизированы. Unsafe это такой внутренний хак JVM, который позволяет выжать производительности для определенных операций. Именно потому что они не безопасны сами по себе, а фактически безопасны в паре с кодом, который его использует.
Для максимально глубокого погружения в тему, наверное стоит почитать этот блог
http://shipilev.net/
...
Рейтинг: 0 / 0
jni, "native" performance
    #39239329
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it_devТеперь вопрос, вызов native системных библиотек оптимизирован?
Да, там они работают иначе, смотри интринсики
Например, http://javaforcats.blogspot.ru/2013/03/intrinsic.html
...
Рейтинг: 0 / 0
jni, "native" performance
    #39239362
it_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, ага, с Unsafe немного знаком, как и блогом! Вопрос был про то, что в Unsafe есть вызовы native, являются вызовы native Unsafe оптимизированными для системных библиотек, тех, которые часть jdk. Буду продолжать учиться формулировать вопросы.
just_vladimir, похоже то, что я искал! и даже на русском языке! спасибо!
...
Рейтинг: 0 / 0
jni, "native" performance
    #39239372
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it_devБуду продолжать учиться формулировать вопросы.
Во-во. Потому как я до сих пор вопроса не понял.
"Приводит ли JNI к ухудшению производительности?"
"Приводит ли использование Unsafe к ухудшению производительности?"
"Являются ли нативные вызовы Unsafe обычным JNI или они имеют какие-то специальные оптимизации?"
Что именно из этого всего интересует?
...
Рейтинг: 0 / 0
jni, "native" performance
    #39240369
it_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, та да, я имел ввиду "Являются ли нативные вызовы Unsafe обычным JNI или они имеют какие-то специальные оптимизации?" , когда написал:

meТеперь вопрос, вызов native системных библиотек оптимизирован?

т.е. является native call к библиотеке, которую я наогромировал сам, медленнее, чем native callы из Unsafe.
http://stackoverflow.com/questions/7823665/why-jni-call-to-native-method-is-slower-than-similar-in-sun-misc-unsafe

но я еще научусь формулировать вопросы и еще что-нибудь спрошу!
спасибо!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / jni, "native" performance
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]