我知道默认的Java堆内存是128 MB。由于它是默认,我想知道此内存是否根据RAM大小自动更改。例如,对于具有128 MB RAM的计算机,堆内存128太多而且应该自动更改。因为如果一个应用程序使用全部128个堆,PC将最终遇到麻烦。
请帮忙。
答案 0 :(得分:7)
在Java 1.6 update 18(及更高版本)中,如果未指定,则客户端JVM中的缺省堆大小遵循以下规则:
默认的最大堆大小是物理内存的一半 物理内存大小为192兆字节,否则为四分之一 物理内存最大为1千兆字节的物理内存。
有关 例如,如果您的计算机具有128兆字节的物理内存,那么 最大堆大小为64兆字节,大于或等于1 千兆字节的物理内存导致最大堆大小为256 兆字节。
在以前版本的Java堆中,默认情况下,堆大小不是变量。
答案 1 :(得分:3)
不会,除非您在启动时使用-Xmx
选项要求,否则不会自动更改。
在任何情况下,32位计算机上都不能超过2 GB。如果您需要更多,那么您必须获得具有大量RAM的64位操作系统。
答案 2 :(得分:1)
您可以使用aptions -Xmx和-Xms
指定JVM堆大小-Xmx - 最大尺寸。 -Xms - 最小尺寸。
您指定类似
-Xmx64m -Xms32m (for 64 and 32 MB)
答案 3 :(得分:1)