根据GC人体工程学,默认的最大堆大小应为"物理内存的1/4或1GB".
阅读我希望在96GB ram的服务器级机器上使用jvm,默认最大堆大小1GB(96GB/4 = 24GB或1GB).
但是,当我编译并运行以下代码时,它会写出来21463(即约21GB).
public class Main{
public static void main(String[] args) {
System.out.println(Runtime.getRuntime().maxMemory() / 1024 / 1024);
}
}
Run Code Online (Sandbox Code Playgroud)
如果重要:java -version生产
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
Run Code Online (Sandbox Code Playgroud)
总而言之,如果我正确阅读文档,默认的最大堆大小应该不大于1GB,但实际上它大约是服务器内存的1/4.怎么会?