【问题标题】:Java JNI : Memory allocation / partitioningJava JNI:内存分配/分区
【发布时间】:2011-05-13 02:23:28
【问题描述】:

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


详情

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


相关问题:

Java memory allocation limit

【问题讨论】:

    标签: java memory jvm java-native-interface


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 2013-07-27
      • 2018-07-02
      • 2012-01-13
      • 2010-12-26
      • 2021-06-09
      • 1970-01-01
      相关资源
      最近更新 更多