-D參數(shù)
? 格式:-D<key>=<value>,表示設(shè)置jvm啟動參數(shù)蹂风,代碼通過System.getproperty("key")森缠,獲取設(shè)置的自定義參數(shù)恢着。
package com.shuqi.jvm;
public class JvmDemo {
public static void main(String[] args) {
//java -DmyUserName=shuqi JvmDemo
System.out.println(System.getProperty("myUserName", "default"));
// 默認輸出default爪瓜,指定-DmyUserName=shuqi瓣窄,則輸出shuqi
}
}
-XX參數(shù)
-XX屬于非標準參數(shù),主要用于jvm調(diào)優(yōu)和debug操作
boolean類型
? 格式:-XX:[+-]<name>表示啟用或者停用參數(shù),+表示啟用索昂,-表示停用
參數(shù) | 作用 |
---|---|
-XX:+DisableExplicitGC | 禁止手動GC[System.gc()] |
-XX:+HeapDumpOnOutOfMemeryError | 內(nèi)存溢出打印堆椊ǔ担【XX:HeapDumpPath】 |
-XX:+PrintFlagsFinal | 打印出當前jvm參數(shù)的詳細信息【可以用來查看不知道的參數(shù)key】 |
-XX:+PrintGCDetails | 打印出GC詳細信息,配合[Xloggc:/tmp/gc.log]使用 |
-XX:+PrintHeapAtGC | GC后打印堆信息 |
-XX:+TraceClassLoading | 打印類加載的所有詳細信息 |
非boolean類型
格式:-XX<key>=<value>
參數(shù) | 作用 |
---|---|
-Xmx<n> | 堆內(nèi)存最大值椒惨,等價于[-XX:HeapMaxSize=<n>] |
-Xms<n> | 初始化堆內(nèi)存大小缤至,等價于[-XX:InitialHeapSize=<n>] |
-Xmn<n> | 新生代初始內(nèi)存的大小 |
-XX:newSize | 新生代初始內(nèi)存的初始化大小【小于-Xms的值】 |
-XX:MaxnewSize | 新生代可被分配的內(nèi)存的最大上限【小于-Xmx的值】 |
-XX:NewRatio | Old Generation與 New Generation 的比例 , 在使用 CMS GC 的情況下此參數(shù)失效 , 如4表示 新生代:老年代=1:4,即年輕代占堆的1/5 |
-XX:SurvivorRatio | 兩個Survivor區(qū)和eden的比康谆,如8表示 兩個Survivor :eden=2:8领斥,即一個Survivor占年輕代的1/10。eden和兩個survivor的默認比例是8:1:1 |
-XX:PermSize | jvm永久代【方法區(qū)】初始化大小沃暗,jdk8以前版有效 |
-XX:MaxPermSize | jvm永久代【方法區(qū)】最大值月洛,jdk8以前版有效 |
-XX:MetaspaceSize | jvm元數(shù)據(jù)空間初始化大小,jdk8+有效 |
-XX:MaxMetaspaceSize | jvm元數(shù)據(jù)空間最大值描睦,jdk8+有效 |
-Xss<n> | 運行線程桟大小 |
? | |
-XX:MaxTenuringThreshold=<n> | 晉升老年代的對象年齡膊存,對象在每一次Minor GC后年齡增加一歲,超過這個值后進入到老年代忱叭。默認值為15隔崎。 |
-XX:PreternureSizeThreshold=<n> | 直接晉升老年代的對象大小,設(shè)置了這個參數(shù)后韵丑,大于這個參數(shù)的對象直接在老年代進行分配爵卒。 |
? | |
-XX:HeapDumpPath=<n> | 內(nèi)存溢出Dump文件保存目錄 |
-XX:StringTableSize=<n> | Sting.intern()的常量Table大小,保存數(shù)據(jù)的極限【http://lovestblog.cn/blog/2016/11/06/string-intern/】 |
永久代 Permanent Generation
元數(shù)據(jù)空間 Matespace撵彻,jdk8用來替換永久代