【发布时间】:2017-05-26 01:42:30
【问题描述】:
在 JNI 规范中,它说:
JNI 接口的组织方式类似于 C++ 虚函数表或 COM 接口。使用接口表而不是硬连接的函数条目的优点是 JNI 命名空间与本机代码分离。一个 VM 可以很容易地提供多个版本的 JNI 函数表。例如,VM 可能支持两个 JNI 函数表:
一个执行彻底的非法参数检查,并且适合调试; 另一个执行 JNI 规范所需的最少检查量,因此效率更高。
但它真的需要吗?毕竟接口指针是指向指针的指针。性能衰退的代价更大。
【问题讨论】:
-
与跨越 JVM/JNI 边界和执行 JNI 函数调用的开销相比,额外的间接性是微不足道的。
标签: java java-native-interface virtual-machine