0

我通过打印 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 Exabytes!

有人可以解释为什么默认的 MaxMetaspaceSize 值这么大吗?

4

1 回答 1

2

18446744073709547520 = 0xFFFFFFFFFFFFF000

这基本上是最大可能的 64 位整数(四舍五入到页面大小)。
这个想法是MaxMetaspaceSize默认有无限的。

于 2020-06-01T08:19:44.757 回答