运行时数据区域
参数
-Xms 堆起始值
-Xmx 堆最大值
-Xmn 新生代
-Xss 栈
-XX:MaxMetaspaceSize: 设置元空间最大值, 默认是-1, 即不限制, 或者说只受限于本
地内存大小。
-XX:MetaspaceSize: 指定元空间触发 Fullgc 的初始阈值(元空间无固定初始大小), 以字节
为单位,默认是 21M,达到该值就会触发 full gc 进行类型卸载, 同时收集器会对该值进行
调整: 如果释放了大量的空间, 就适当降低该值; 如果释放了很少的空间, 那么在不超
过-XX:MaxMetaspaceSize(如果设置了的话) 的情况下, 适当提高该值。
由于调整元空间的大小需要 Full GC,这是非常昂贵的操作,如果应用在启动的时候发生大
量 Full GC,通常都是由于永久代或元空间发生了大小调整,基于这种情况,一般建议在 JVM
参数中将 MetaspaceSize 和 MaxMetaspaceSize 设置成一样的值,并设置得比初始值要大,
对于 8G 物理内存的机器来说,一般我会将这两个值都设置为 256M。
示例
-Xms2048M -Xmx2048M -Xmn768M -Xss256k -XX:MetaspaceSize=64M
-XX:MaxMetaspaceSize=64M -XX:MaxTenuringThreshold=5