java8的jvm优化_基于JDK8 版本的SpringBoot 启动参数优化(建议收藏)
Linux端運行項目命令
java -jar -XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=128m-Xms1024m -Xmx1024m-Xmn256m-Xss256k-XX:SurvivorRatio=8-XX:+UseConcMarkSweepGC?springboot項目.jar
參數介紹
-XX:MetaspaceSize=128m (元空間默認大小)
-XX:MaxMetaspaceSize=128m (元空間最大大小)
-Xms1024m (堆最大大小) -Xmx1024m (堆默認大小)
-Xmn256m (新生代大小) -Xss256k (棧最大深度大小)
-XX:SurvivorRatio=8 (新生代分區比例 8:2)
-XX:+UseConcMarkSweepGC (指定使用的垃圾收集器,這里使用CMS收集器)
-XX:+PrintGCDetails (打印詳細的GC日志)
解釋
JDK8之后把-XX:PermSize 和 -XX:MaxPermGen移除了,取而代之的是 -XX:MetaspaceSize=128m (元空間默認大小) -XX:MaxMetaspaceSize=128m (元空間最大大小) JDK 8開始把類的元數據放到本地化的堆內存(native heap)中,這一塊區域就叫Metaspace,中文名叫元空間。使用本地化的內存有什么好處呢?最直接的表現就是java.lang.OutOfMemoryError: PermGen 空間問題將不復存在,因為默認的類的元數據分配只受本地內存大小的限制,也就是說本地內存剩余多少,理論上Metaspace就可以有多大(貌似容量還與操作系統的虛擬內存有關?這里不太清楚),這解決了空間不足的問題。不過,讓Metaspace變得無限大顯然是不現實的,因此我們也要限制Metaspace的大小:使用-XX:MaxMetaspaceSize參數來指定Metaspace區域的大小。JVM默認在運行時根據需要動態地設置MaxMetaspaceSize的大小。
JDK7 與JDK8 JVM內存結構圖
總結
以上是生活随笔為你收集整理的java8的jvm优化_基于JDK8 版本的SpringBoot 启动参数优化(建议收藏)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java保存多张图片格式_从多个URL下
- 下一篇: java8u211_jre864位u21