『程序员BUG』真实有效),SpringBoot项目优化和Jvm调优(亲测( 二 )


知识点:
JDK8之后把-XX:PermSize和-XX:MaxPermGen移除了 , 取而代之的是-XX:MetaspaceSize=128m(元空间默认大小)-XX:MaxMetaspaceSize=128m(元空间最大大小)JDK8开始把类的元数据放到本地化的堆内存(nativeheap)中 , 这一块区域就叫Metaspace , 中文名叫元空间 。 使用本地化的内存有什么好处呢?最直接的表现就是java.lang.OutOfMemoryError:PermGen空间问题将不复存在 , 因为默认的类的元数据分配只受本地内存大小的限制 , 也就是说本地内存剩余多少 , 理论上Metaspace就可以有多大(貌似容量还与操作系统的虚拟内存有关?这里不太清楚) , 这解决了空间不足的问题 。 不过 , 让Metaspace变得无限大显然是不现实的 , 因此我们也要限制Metaspace的大小:使用-XX:MaxMetaspaceSize参数来指定Metaspace区域的大小 。 JVM默认在运行时根据需要动态地设置MaxMetaspaceSize的大小 。
好啦 , 祝大家学习和工作顺利啦!