Java JNI:内存分配/分区

bgu*_*uiz 13 java memory java-native-interface jvm

使用JNI时,JNI二进制文件是使用自己的内存,还是使用分配给JVM的部分内存?


细节

当您指定-Xmx1024m为JVM选项时,JVM是否将所有1024 MB的内存分配给Java对象?
它是否将部分内容用于Java对象,部分内容用于JNI二进制文件,还是JNI二进制文件除了此数量外还必须使用内存?在这种情况下,JVM如何分配/分区/管理内存?


相关问题:

Java内存分配限制

Qua*_*nic 18

正如我在一些JNI代码中发现内存泄漏时发现的第一手资料,JNI二进制文件在任何JVM堆空间之外的JVM进程中使用自己的内存.我们看到Linux实际上已经淘汰了JVM,因为JVM整体上超过了3GB的虚拟内存.但是我们正在使用-Xmx384m并且只在Java对象方面使用了大约40MB,这几乎证明JNI使用JVM堆空间之外的内存.