JVM的优化主要是对JVM堆内存的优化,首先必须了解堆内存的组成部分,了解各个组成部分的作用
如图:
JVM堆内存结构
从图中可知,JVM堆分为新生代和老年代,注意,Perm Generation区域不属于堆内存,新生代又分为一个Eden区域和两个Survivor区域,默认比例为8:1:1,两个Survivor区域大小一样。可以使用-XX:SurvivorRatio设置Eden和Survivor的比值,例如:-XX:SurvivorRatio=8则表示Eden和一个Survivior的比值为8:1,默认值也为8:1
JDK8堆内存结构变动
在JDK8中,最主要的就是元空间代替了永久代(PermGen Space),Metaspace的内存大小是可以动态增长的,仅仅受限于本地内存的大小,当然也可以通过 -XX:MetaspaceSize和-XX:MaxMetaspaceSize指定大小,在JDK8中-XX:PermSize和-XX:MaxPermSize这两个参数已不再使用。