问题出现场景
使用jdk1.8的时候设置了vm参数:-Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=768m -Xss2m
此时运行java程序时VM提示如下警告:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=512m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=768m; support was removed in 8.0
解决思路
查阅网上资料:
http://www.coderhelper.top/doc/technotes/tools/windows/java.html#BABDCEGG
得知-XX:PermSize和-XX:MaxPermSize在jdk1.8中被弃用了,使用-XX:MetaspaceSize和-XX:MaxMetaspaceSize替代。
所以此时VM参数正确应为:-Xmx2048m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=768m -Xss2m
思考
在jdk1.8之前之前我们将储存类信息、常量、静态变量的方法区称为持久代(Permanent Generation),PermSize和MaxPermSize是设置持久代大小的参数,在jdk1.8中持久代被完全移除了,所以这两个参数也被移除了,多了一个元数据区(Metadata Space),所以设置元数据区大小的参数也变成对应的MetaspaceSize和MaxMetaspaceSize了。
版权声明
原文地址为:http://blog.csdn.net/qq525099302/article/details/78396120,转载请注明出处。
扩展阅读
扩展阅读:http://ifeve.com/java-permgen-removed/ (Java PermGen 去哪里了?)