Java:Activity 中的内存消耗 Mac 与 JVisualVM 上的监视器

Java: Memory consumption in Activity Monitor on Mac vs JVisualVM

我正在尝试使用 LWJGL 2 在 Java 中开发体素渲染引擎。

我从 Eclipse 启动我的应用程序,我在 "Run Configurations" 菜单中将初始堆大小设置为 1024M,将最大堆大小设置为 2048M。

当我在 Java VisualVM 中查看我的程序的内存消耗时,它向我显示了大约 500-1000 MB 的已用堆。

JavaVisualVM

内存消耗图

但是,Mac 上的 Activity 监视器显示已使用 20 GB 的 RAM。造成这种巨大差异的可能原因是什么?

堆大小仅供普通 Java 对象使用。

如果您使用像 LWJQL 这样的本机库,您可以分配更多的本机内存。

当您不再需要这些本机数据对象时,通常需要通过调用对象上的方法来显式释放它们。