Я читал в в IBM, который
Чтобы получить доступ к полям объектов Java и вызвать их методы, собственный код должен делать вызовы в FindClass(), GetFieldID(), GetMethodId() и GetStaticMethodID(). В случае GetFieldID(), GetMethodID() и GetStaticMethodID(), идентификаторы, возвращаемые для данного класса, не изменяются для времени жизни процесса JVM. Но вызов для получения поля или метод может потребовать значительную работу в JVM, поскольку поля и методы могут быть унаследованы от суперклассов, что делает JVM найдите иерархию классов, чтобы найти их. Поскольку идентификаторы одинаковы для данного класса вы должны искать их один раз, а затем повторно использовать их. Аналогично, поиск объектов класса может быть дорогостоящим, поэтому они должны также кэшируется.
Как один кешировать объекты methodID
, fieldID
и class
в JNI?
Существуют ли встроенные методы или конкретная процедура, которая должна соблюдаться?