为什么 Java 上的默认 MaxMetaspaceSize 非常大?
Why is the default MaxMetaspaceSize on Java very large?
我通过如下打印 JVM 参数检查了 JVM 上的默认 MaxMetaspaceSize
java -XX:+PrintFlagsFinal -version | grep MaxMetaspaceSize
uintx MaxMetaspaceSize = 18446744073709547520 {product}
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)
鉴于这些 JVM 参数值以字节为单位显示,默认的 MaxMetaspaceSize 约为 18 艾字节!
谁能解释一下为什么默认的 MaxMetaspaceSize 值这么大?
18446744073709547520 = 0xFFFFFFFFFFFFFF000
这基本上是最大可能的 64 位整数(四舍五入到页面大小)。
这个想法是默认 MaxMetaspaceSize
无限制。
我通过如下打印 JVM 参数检查了 JVM 上的默认 MaxMetaspaceSize
java -XX:+PrintFlagsFinal -version | grep MaxMetaspaceSize
uintx MaxMetaspaceSize = 18446744073709547520 {product}
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)
鉴于这些 JVM 参数值以字节为单位显示,默认的 MaxMetaspaceSize 约为 18 艾字节!
谁能解释一下为什么默认的 MaxMetaspaceSize 值这么大?
18446744073709547520 = 0xFFFFFFFFFFFFFF000
这基本上是最大可能的 64 位整数(四舍五入到页面大小)。
这个想法是默认 MaxMetaspaceSize
无限制。