【问题标题】:Understanding JVM heap size (when using Eclipse)了解 JVM 堆大小(使用 Eclipse 时)
【发布时间】:2013-08-06 02:58:48
【问题描述】:

这里有很多关于“如何增加堆大小”的问题,但我想了解这些设置实际上如何影响 Java 应用程序的内存消耗(在我的例子中是 Eclipse IDE,但我想这没关系)。

我的 JVM 使用这些参数启动:

-Xms512m
-Xmx1024m

所以我希望当执行需要内存的东西时,堆大小将上升到 1024 MB。但是,我只看到 Eclipse 最多分配了大约 700-800 MB

(如果我对条形的理解正确,黄色部分是当前分配,整个条形是最大分配,还有一些我不知道是什么的“标记”)。

当我开始编译一个大型项目时,我会定期看到黄色条上升,达到整个条的 90% 左右,然后回落到大约 200-300 MB。这没有利用最大允许的 1024MB,是吗?

如果有人可以向我解释这种行为并可能如何改变它,那就太好了。

顺便说一句,如果这很重要,我的 Eclipse 是带有 64 位 JVM 的 64 位版本(不过,32 位的 1024 限制也应该没问题)。

【问题讨论】:

    标签: eclipse jvm heap-memory


    【解决方案1】:

    Xmx 是一个硬限制。如果 GC 能够在达到最大值之前清理对象/降低内存消耗,则不会达到最大值。

    如果您出于某些原因需要消耗 1GB 内存,只需将 Xms 和 Xmx 设置为相同大小即可。

    【讨论】:

      猜你喜欢
      • 2011-01-28
      • 2013-01-01
      • 1970-01-01
      • 2013-12-05
      • 2010-10-20
      • 2012-01-10
      • 2016-11-12
      • 1970-01-01
      相关资源
      最近更新 更多