为什么Java上的默认MaxMetaspaceSize非常大?
通过如下打印JVM参数,我检查了JVM上的默认MaxMetaspaceSize为什么Java上的默认MaxMetaspaceSize非常大?,java,jvm,metaspace,Java,Jvm,Metaspace,通过如下打印JVM参数,我检查了JVM上的默认MaxMetaspaceSize java -XX:+PrintFlagsFinal -version | grep MaxMetaspaceSize uintx MaxMetaspaceSize = 18446744073709547520 {product} java version "1.8.0_152" Java(TM) SE Runtime En
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 EB
有人能解释一下为什么默认的MaxMetaspaceSize值这么大吗?18446744073709547520=0xFFFFFFFFF000 这基本上是最大可能的64位整数(四舍五入到页面大小)。
我们的想法是在默认情况下使MaxMetaspaceSize不受限制。18446744073709547520=0xFFFFFFFFF000 这基本上是最大可能的64位整数(四舍五入到页面大小)。
我们的想法是默认设置
MaxMetaspaceSize
无限制。谢谢@apangin。MaxHeapSize
的默认值是内存大小的一小部分。是否有理由将MaxMetaspaceSize
default设置为unlimited而不是类似于MaxHeapSize
的一小部分内存?@nilusancosta元空间的主要目标之一是删除PermGen并避免调整其大小。有关详细信息,请参阅。谢谢@apangin。MaxHeapSize
的默认值是内存大小的一小部分。是否有理由将MaxMetaspaceSize
default设置为unlimited而不是类似于MaxHeapSize
的一小部分内存?@nilusancosta元空间的主要目标之一是删除PermGen并避免调整其大小。有关详细信息,请参阅。