在使用JNI时,JNI二进制文件是使用自己的内存,还是使用分配给JVM的部分内存?
详细信息
当您指定-Xmx1024m
作为JVM选项时,JVM是否会将全部1024mb的内存分配给Java对象?
它是否将部分内存用于Java对象,将部分内存用于JNI二进制文件,或者JNI二进制文件是否必须额外使用内存?在这种情况下,JVM如何分配/分区/管理内存使用?
相关问题:
发布于 2011-05-13 10:26:59
当我们在一些JNI代码中发现内存泄漏时,我直接发现JNI二进制文件在任何JVM堆空间之外的JVM进程中使用自己的内存。我们看到Linux实际上杀死了JVM,因为JVM作为一个整体超过了3 3GB的虚拟内存。但是我们使用的是-Xmx384m
,并且只在Java对象方面使用了大约40MB,这很好地证明了JNI使用JVM堆空间之外的内存。
https://stackoverflow.com/questions/5986645
复制相似问题