Java JNI : 内存分配/分区

2022-09-04 02:16:55

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


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


相关问题:

Java 内存分配限制


答案 1

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


答案 2