JDK8+移除了Perm,引入了Metapsace,它们两者的区别是什么呢?Metasace上面已经总结了,无论-XX:MetaspaceSize
和-XX:MaxMetaspaceSize
两个参数如何设置,都会从20.8M开始,随着类加载越来越多不断扩容调整,上限是-XX:MaxMetaspaceSize
,默认是几乎无穷大。而Perm的话,我们通过配置-XX:PermSize
以及-XX:MaxPermSize
来控制这块内存的大小,jvm在启动的时候会根据-XX:PermSize
初始化分配一块连续的内存块,这样的话,如果-XX:PermSize
设置过大,就是一种赤果果的浪费。很明显,Metapsace比Perm好多了^^;
JDK7 Perm 验证如下--设置-XX:PermSize=64m -XX:MaxPermSize=64m
,那么PC初始化就是64m: