了解JVM堆大小(使用Eclipse时)

6gpjuf90  于 2022-11-23  发布在  Eclipse
关注(0)|答案(1)|浏览(124)

这里有很多关于“如何增加堆大小”的问题,但我想了解这些设置实际上如何影响Java应用程序的内存消耗(在我的例子中是Eclipse IDE,但我想这无关紧要)。
我的JVM使用以下参数启动:

-Xms512m
-Xmx1024m

因此我预计,当执行一些对内存要求很高的操作时,堆大小将达到1024 MB。但是,我看到Eclipse最多只分配了700-800 MB

(if我正确地理解了该条,黄色部分是当前分配,整个条是最大分配,还有一些我不知道是什么的“标记”)。
当我开始编译一个大型项目时,我会定期看到黄色条上升,达到整个条的90%,然后下降到大约200-300 MB。这没有利用最大允许的1024 MB,是吗?
如果有人能向我解释这种行为,并可能如何改变它,那就太好了。
顺便说一句,我的Eclipse是64位版本,如果有问题的话,它带有64位JVM(不过,1024的限制对于32位也应该可以)。

vybvopom

vybvopom1#

Xmx是一个硬限制。如果GC能够在达到最大限制之前清理对象/降低内存消耗,则未达到最大值。
如果您有一些原因需要1GB的内存消耗,只需将Xms和Xmx设置为相同的大小。

相关问题