目錄
- 一、堆的核心概述
- 二、堆的內存細分(按分代收集理論設計)
- 2.1 java7及以前
- 2.2 java8及以后
- 三、堆內存大小
- 3.1 說明
- 3.2 參數設置
- 3.3 默認大小
- 3.4 手動設置
- 3.5 jps
- 3.6 jstat
- 3.7 OutOfMemory舉例
- 四、年輕代與老年代
- 4.1 說明
- 五、對象分配過程
- 5.1 說明
- 5.2 對象分配舉個例子
- 六、堆空間分代思想
- 七、內存分配策略
- 八、對象分配內存:TLAB
- 8.1 說明
- 8.2 TLAB
- 九、堆空間參數設置
- 9.1 說明
- 9.2 示例代碼
- 9.3 查看所有的參數的默認初始值
- 9.4 查看所有的參數的最終值
- 9.5 查看某個參數的指令
- 十、截圖示例
- 10.1 new對象指令
- 10.2 jdk7的gc信息
- 10.3 jdk8的gc信息
一、堆的核心概述
- 1. 一個JVM實例只存在一個堆內存,堆也是Java內存管理的核心區域
- 2. Java 堆區在JVM 啟動的時候即被創建,其空間大小也就確定了。是JVM管理的最大一塊內存空間
- 3. 堆內存的大小是可以調節的
- 4. 《Java虛擬機規范》規定,堆可以處于物理上不連續的內存空間中,但在邏輯上它應該被視為連續的
- 5. 所有的線程共享Java堆,在這里還可以劃分線程私有的緩沖區 (ThreadLocal Allocation Buffer, TLAB)
- 6.《Java虛擬機規范》中對Java堆的描述是:所有的對象實例以及數組都應當在運行時分配在堆上
- 7. The heap is the run-time data area from which memory for all class instances and arrays is allocated
- 8. 從實際使用角度看,“幾乎”所有的對象實例都在這里分配內存
- 9. 數組和對象可能永遠不會存儲在棧上,因為棧幀中保存引用,這個引用指向對象或者數組在堆中的位置
- 10. 在方法結束后,堆中的對象不會馬上被移除,僅僅在垃圾收集的時候才會被移除
- 11. 堆是GC ( Garbage collection,垃圾收集器) 執行垃圾回收的重點區域
二、堆的內存細分(按分代收集理論設計)
2.1 java7及以前
- 1. 分為新生區、養老區、永久區
- 2. 新生區又叫新生代、年輕代,Young Generation Space、Young/New
- 3. 新生區又被劃分為Eden區和Survivor區
- 4. 養老區又叫老年區、老年代,Tenure generation space,Old/Tenure
- 5. 永久區又叫永久代,Permanent Space,Perm
2.2 java8及以后
- 1. 分為新生區、養老區、元空間
- 2. 元空間,Meta Space,Meta
三、堆內存大小
3.1 說明
- 1. Java堆區用于存儲Java對象實例,堆的大小在JVM啟動時就已經設定好了
- 2. 可以通過選項-Xmx和-Xms來進行設置
- 3. “-Xms”用于表示堆區的起始內存(memory start),等價于-XX:InitialHeapSize
- 4. “-Xmx”則用于表示堆區的最大內存(max),等價于-XX:MaxHeapSize
- 5. 一旦堆區中的內存大小超過“-Xmx”所指定的最大內存(max size)時,將會拋出OutOfMemoryError異常
- 6. 通常會將 -Xms 和-Xmx兩個參數配置相同的值,目的是為了能夠在java垃圾回收機制清理完堆區后不需要重新分隔計算堆區的大小,從而提高性能。
3.2 參數設置
- 1. 設置堆空間大小的參數
- 2. -Xms 用來設置堆空間(新生代和老年代)的初始內存大小
- 3. -X 是jvm的運行參數
- 4. ms 是memory start
- 5. -Xmx 用來設置堆空間(新生代和老年代)的最大內存大小
3.3 默認大小
- 1. 初始內存大小:物理電腦內存大小/64
- 2. 最大內存大小:物理電腦內存大小/4
3.4 手動設置
- 1. -Xms600m -Xmx600m
- 2. 開發中建議將初始堆內存和最大的堆內存設置成相同的值
3.5 jps
- 1.查看java進程
3.6 jstat
- 1. 查看java進程的gc信息
// 11908是進程id
jstat -gc 11908
- 2. S0C是新生代的survivor0區內存總量大小
- 3. S1C是新生代的survivor1區內存總量大小
- 4. S0U是新生代的survivor0區已使用的內存總量大小
- 5. S1U是新生代的survivor1區已使用的內存總量大小
- 6. EC是新生代的eden區內存總量大小
- 7. EU是新生代的eden區已使用的內存總量大小
- 8. OC是老年代內存總量大小
- 9. OU是老年代內存使用的大小
- 10. S0C和S1C只有其中一個納入計算(用一個是因為gc的回收算法)
3.7 OutOfMemory舉例
package com.learning.heap.out_of_memory;import java.util.ArrayList;
import java.util.Random;/*** @Author wangyouhui* @Description oom測試**/
public class OutOfMemoryTest {public static void main(String[] args) {ArrayList<Picture> list = new ArrayList<>();while(true){try {Thread.sleep(20);} catch (InterruptedException e) {e.printStackTrace();}list.add(new Picture(new Random().nextInt(1024*1024)));}}
}class Picture{private byte[] pixels;public Picture(int length){this.pixels = new byte[length];}
}
四、年輕代與老年代
4.1 說明
- 1. 存儲在JVM中的Java對象可以被劃分為兩類: 一類是生命周期較短的瞬時對象,這類對象的創建和消亡都非常迅速。
- 2. 另外一類對象的生命周期卻非常長,在某些極端的情況下還能夠與JVM的生命周期保持一致。
- 3. Java堆區進一步細分可以劃分為年輕代(YoungGen)和老年代 (oldGen)
- 4. 其中年輕代又可以劃分為Eden空間、Survivor0空間和Survivor1空間(有時也叫做 from區、to區)
- 5. 內存結構圖如下:
- 6. 新生代和老年代在堆結構的占比圖
- 7. 默認-XX:NewRatio=2,表示新生代占1,老年代占2,新生代占整個堆的1/3
- 8. 修改-XX:NewRatio=4,表示新生代占1,老年代占4,新生代占整個堆的1/5
- 9. 在HotSpot中,Eden空間和另外兩個survivor空間缺省所占的比例是8:1:1,但默認情況下并不是8:1:1(有個自適應的內存比例),如下圖是6:1:1
package com.learning.heap;/*** @Author wangyouhui* @Description eden區域與幸存者區占比* -XX:NewRatio :設置新生代與老年代的比例。默認值是2* -XX:SurvivorRatio : 資置新生代中Eden區與Survivor區的比例* -XX:-UseAdaptivesizePolicy : 關閉自適應的內存分配策略**/
public class EdenSurvivorTest {public static void main(String[] args) {System.out.println("eden區域與幸存者區占比");try {Thread.sleep(10000000);} catch (InterruptedException e) {e.printStackTrace();}}
}
- 10. 當然開發人員可以通過選項“-XX:SurvivorRatio”調整這個空間比例。比如-XX:SurvivorRatio=8
- 11. 幾乎所有的Java對象都是在Eden區被new出來的。(如果對象太大,Eden區放不下會則在老年代中被new)
- 12. 絕大部分的Java對象的銷毀都在新生代進行了
- 13. IBM 公司的專門研究表明,新生代中 80的對象都是“朝生夕死”的可以使用選項”-Xmn"設置新生代最大內存大小
- 14. 這個參數一般使用默認值就可以·
五、對象分配過程
5.1 說明
- 1. 為新對象分配內存是一件非常嚴謹和復雜的任務,JVM的設計者們不僅需要考慮內存如何分配、在哪里分配等問題,并且由于內存分配算法與內存回收算法密切相關,所以還需要考慮GC執行完內存回收后是否會在內存空間中產生內存碎片。
- 2. new的對象先放伊甸園區。此區有大小限制。
- 3. 當伊甸園的空間填滿時,程序又需要創建對象,JVM的垃圾回收器將對伊甸園區進行垃圾回收(Minor GC),將伊甸園區中的不再被其他對象所引用的對象進行銷毀。再加載新的對象放到伊甸園區
- 4. 然后將伊甸園中的剩余對象移動到幸存者0區。
- 5. 如果再次觸發垃圾回收,此時上次幸存下來的放到幸存者0區的,如果沒有回收,就會放到幸存者1區。
- 6. 如果再次經歷垃圾回收,此時會重新放回幸存者0區,接著再去幸存者1區
- 7. 可以設置次數來決定啥時候去養老區,默認是15次。
- 8. 可以設置參數: -XX:MaxTenurinaThreshold=進行設置
- 9. 在養老區,相對悠閑。當養老區內存不足時,再次觸發GC: Major GC,進行養老區的內存清理。
- 10. 若養老區執行了Major GC之后發現依然無法進行對象的保存,就會產生OOM異常java.lang.OutofMemoryError: Java heap space
- 11. 針對幸存者s0,s1區的總結: 復制之后有交換,誰空誰是To
- 12. 關于垃圾回收:頻繁在新生區收集,很少在養老區收集,幾乎不在永久區元空間收集。
5.2 對象分配舉個例子
- 1. 準備new三個對象A、B、C、D
- 2. 如果D很大,eden區放不下,則直接把D放入養老區
- 3. A、B、C比較小,分配在eden區
- 4. 分配對象在eden區,eden區滿了放不下了會觸發年輕代的垃圾回收(Young GC或者Minor GC)
- 5. 觸發Young GC后,會Stop The World(STW)停止用戶線程,來判斷(可達性分析算法)哪些是可以回收的垃圾對象
- 6. 經過Young GC發現C是垃圾(沒有任何引用指向,不再使用),A和B還有引用指向
- 7. 把A和B提升到幸存者區(To區),并且將A和B的年齡計數器加1,即A和B的年齡為1,此時To區變為From區,另一個空的幸存者區變為To區
- 8. eden區再陸續放入對象E、F、G,然后eden區又滿了,再次觸發Young GC,此時F、G是垃圾,E則被放入幸存者To區,E的年齡計數器加1,即E的年齡為1
- 9. Young GC也會判斷幸存者From區的A和B,如果還在被占用,不能被回收,則把幸存者From區的A和B放入幸存者To區,對應的年齡計數器加1,即A和B的年齡為2;如果能回收則回收了
- 10. 此時幸存者From區為空,則變為幸存者To區,原來的To區改為From區(每次執行完Young GC,誰是空誰就是幸存者To區)
- 11. 上述過程不斷累積,當幸存者From區的A和B的年齡達到15,再進行Young GC時,則將A和B做一次晉升,即晉升到老年代,相應的年齡計數器加1,即A和B的年齡為16,15則被稱為閾值
- 12. 當eden區滿了才會觸發Young GC,幸存者區滿了不會觸發,Young GC會將eden區和幸存者區一起回收,當幸存者區滿了會將其對象直接晉升為老年代
六、堆空間分代思想
- 1.不分代完全可以,分代的唯一理由就是優化GC性能。
- 2.如果沒有分代,那所有的對象都在一塊,GC的時候要找到哪些對象沒用這樣就會對堆的所有區域進行掃描。
- 3.而很多對象都是朝生夕死的,如果分代的話,把新創建的對象放到某一地方,當GC 的時候先把這塊存儲“朝生夕死”對象的區域進行回收,這樣就會騰出很大的空間出來。
七、內存分配策略
- 1.如果對象在Eden 出生并經過第一次MinorGC 后仍然存活,并且能被Survivor容納的話,將被移動到Survivor 空間中, 并將對象年齡設為1 。
- 2.對象在年齡就增加1 歲,當它的年齡增加到一定Survivor 區中每熬過一次MinorGC ,程度(默認為15 歲,其實每個JVM、每個GC都有所不同) 時,就會被晉升到老年代中。
- 3.對象晉升老年代的年齡闖值,可以通過選項-XX:MaxTenuringThreshold來設置。
- 4.針對不同年齡段的對象分配原則:優先分配到Eden,大對象直接分配到老年代,盡量避免程序中出現過多的大對象
- 5.長期存活的對象分配到老年代
- 6.動態對象年齡判斷:如果survivor 區中相同年齡的所有對象大小的總和大于survivor空間的一半,年齡大于或等于該年齡的對象可以直接進入老年代,無須等到MaxTenuringThreshold 中要求的年齡。
- 7.空間分配擔保-XX:HandlePromotionFailure
八、對象分配內存:TLAB
8.1 說明
- 1.Thread Local Allocation Buffer
- 2.堆區是線程共享區域,任何線程都可以訪問到堆區中的共享數據
- 3.由于對象實例的創建在JVM中非常頻繁,因此在并發環境下從堆區中劃分內存空間是線程不安全的
- 4.為避免多個線程操作同一地址,需要使用加鎖等機制,進而影響分配速度
- 5.盡管不是所有的對象實例都能夠在TLAB中成功分配內存,但JVM確實是將TLAB作為內存分配的首選。
- 6.在程序中,開發人員可以通過選項“-xx:UseTLAB”設置是否開啟TLAB空間。默認是開啟的
- 7.默認情況下,TLAB空間的內存非常小,僅占有整個Eden空間的1號,當然我們可以通過選項“XX:TLABWasteTargetPercent”設置TLAB空間所占用Eden空間的百分比大小。
- 8.一旦對象在TLAB空間分配內存失敗時,JVM就會嘗試著通過使用加鎖機制確保數據操作的原子性,從而直接在Eden空間中分配內存。
8.2 TLAB
- 1.從內存模型而不是垃圾收集的角度,對Eden區域繼續進行劃分,JVM為每個線程分配了一個私有緩存區域,它包含在Eden空間內。
- 2.多線程同時分配內存時,使用TLAB可以避免一系列的非線程安全問題同時還能夠提升內存分配的吞吐量,因此我們可以將這種內存分配方式稱之為快速分配策略
- 3.幾乎所有openJDK衍生出來的JVM都提供了TLAB的設計。
九、堆空間參數設置
9.1 說明
- 1.官網說明:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
- 2.-XX:+PrintFlagsInitial:查看所有的參數的默認初始值
- 3.-XX:+PrintFlagsFinal:查看所有的參數的最終值(可能會存在修改,不再是初值)
- 4.-Xms:初始堆空間內存(默認為物理內存的1/64)
- 5.-Xmx:最大堆空間內存(默認為物理內存的1/4)
- 6.-Xmn:設置新生代的大小(初始值及最大值)
- 7.-XX:NewRatio:配置新生代與老年代在堆結構的占比
- 8.-XX:SurvivorRatio: 設置新生代中Eden和SO/S1空間的比例
- 9.-XX:MaxTenuringThreshold: 設置新生代垃圾的最大年齡
- 10.-XX:+PrintGCDetails; 輸出詳細的GC處理日志:打印gc簡要信息:-XX:+PrintGC或-verbose:gc
- 11.-XX:HandlePromotionFailure: 是否設置空間分配擔保
9.2 示例代碼
package com.learning.heap.args;/*** @Author wangyouhui* @Description 堆參數測試* -XX:+PrintFlagsInitial 查看所有的參數的默認初始值* -XX:+PrintFlagsFinal 查看所有的參數的最終值(可能會存在修改,不再是初始值)* -Xms 初始堆空間內存(默認為物理內存的1/64)* -Xmx 最大堆空間內存(默認為物理內存的1/4)* -Xmn 設置新生代的大小(初始值及最大值)* -XX:NewRatio 配置新生代與老年代在堆結構的占比* -XX:SurvivorRatio 設置新生代中Eden和S0/S1空間的比例* -XX:MaxTenuringThreashold 設置新生代垃圾的最大年齡* -XX:+PrintGCDetails 輸出詳細的GC處理日志* -XX:+PrintGC 打印gc簡要信息* -verbose:gc 打印gc簡要信息* -XX:HandlePromotionFailure 是否設置空間分配擔保**/
public class HeapArgsTest {public static void main(String[] args) {System.out.println("hello world");}
}
9.3 查看所有的參數的默認初始值
[Global flags]intx ActiveProcessorCount = -1 {product}uintx AdaptiveSizeDecrementScaleFactor = 4 {product}uintx AdaptiveSizeMajorGCDecayTimeScale = 10 {product}uintx AdaptiveSizePausePolicy = 0 {product}uintx AdaptiveSizePolicyCollectionCostMargin = 50 {product}uintx AdaptiveSizePolicyInitializingSteps = 20 {product}uintx AdaptiveSizePolicyOutputInterval = 0 {product}uintx AdaptiveSizePolicyWeight = 10 {product}uintx AdaptiveSizeThroughPutPolicy = 0 {product}uintx AdaptiveTimeWeight = 25 {product}bool AdjustConcurrency = false {product}bool AggressiveHeap = false {product}bool AggressiveOpts = false {product}intx AliasLevel = 3 {C2 product}bool AlignVector = true {C2 product}intx AllocateInstancePrefetchLines = 1 {product}intx AllocatePrefetchDistance = -1 {product}intx AllocatePrefetchInstr = 0 {product}intx AllocatePrefetchLines = 3 {product}intx AllocatePrefetchStepSize = 16 {product}intx AllocatePrefetchStyle = 1 {product}bool AllowJNIEnvProxy = false {product}bool AllowNonVirtualCalls = false {product}bool AllowParallelDefineClass = false {product}bool AllowUserSignalHandlers = false {product}bool AlwaysActAsServerClassMachine = false {product}bool AlwaysCompileLoopMethods = false {product}bool AlwaysLockClassLoader = false {product}bool AlwaysPreTouch = false {product}bool AlwaysRestoreFPU = false {product}bool AlwaysTenure = false {product}bool AssertOnSuspendWaitFailure = false {product}bool AssumeMP = false {product}intx AutoBoxCacheMax = 128 {C2 product}uintx AutoGCSelectPauseMillis = 5000 {product}intx BCEATraceLevel = 0 {product}intx BackEdgeThreshold = 100000 {pd product}bool BackgroundCompilation = true {pd product}uintx BaseFootPrintEstimate = 268435456 {product}intx BiasedLockingBulkRebiasThreshold = 20 {product}intx BiasedLockingBulkRevokeThreshold = 40 {product}intx BiasedLockingDecayTime = 25000 {product}intx BiasedLockingStartupDelay = 4000 {product}bool BindGCTaskThreadsToCPUs = false {product}bool BlockLayoutByFrequency = true {C2 product}intx BlockLayoutMinDiamondPercentage = 20 {C2 product}bool BlockLayoutRotateLoops = true {C2 product}bool BranchOnRegister = false {C2 product}bool BytecodeVerificationLocal = false {product}bool BytecodeVerificationRemote = true {product}bool C1OptimizeVirtualCallProfiling = true {C1 product}bool C1ProfileBranches = true {C1 product}bool C1ProfileCalls = true {C1 product}bool C1ProfileCheckcasts = true {C1 product}bool C1ProfileInlinedCalls = true {C1 product}bool C1ProfileVirtualCalls = true {C1 product}bool C1UpdateMethodData = true {C1 product}intx CICompilerCount = 2 {product}bool CICompilerCountPerCPU = false {product}bool CITime = false {product}bool CMSAbortSemantics = false {product}uintx CMSAbortablePrecleanMinWorkPerIteration = 100 {product}intx CMSAbortablePrecleanWaitMillis = 100 {manageable}uintx CMSBitMapYieldQuantum = 10485760 {product}uintx CMSBootstrapOccupancy = 50 {product}bool CMSClassUnloadingEnabled = true {product}uintx CMSClassUnloadingMaxInterval = 0 {product}bool CMSCleanOnEnter = true {product}bool CMSCompactWhenClearAllSoftRefs = true {product}uintx CMSConcMarkMultiple = 32 {product}bool CMSConcurrentMTEnabled = true {product}uintx CMSCoordinatorYieldSleepCount = 10 {product}bool CMSDumpAtPromotionFailure = false {product}bool CMSEdenChunksRecordAlways = true {product}uintx CMSExpAvgFactor = 50 {product}bool CMSExtrapolateSweep = false {product}uintx CMSFullGCsBeforeCompaction = 0 {product}uintx CMSIncrementalDutyCycle = 10 {product}uintx CMSIncrementalDutyCycleMin = 0 {product}bool CMSIncrementalMode = false {product}uintx CMSIncrementalOffset = 0 {product}bool CMSIncrementalPacing = true {product}uintx CMSIncrementalSafetyFactor = 10 {product}uintx CMSIndexedFreeListReplenish = 4 {product}intx CMSInitiatingOccupancyFraction = -1 {product}uintx CMSIsTooFullPercentage = 98 {product}double CMSLargeCoalSurplusPercent = 0.950000 {product}double CMSLargeSplitSurplusPercent = 1.000000 {product}bool CMSLoopWarn = false {product}uintx CMSMaxAbortablePrecleanLoops = 0 {product}intx CMSMaxAbortablePrecleanTime = 5000 {product}uintx CMSOldPLABMax = 1024 {product}uintx CMSOldPLABMin = 16 {product}uintx CMSOldPLABNumRefills = 4 {product}uintx CMSOldPLABReactivityFactor = 2 {product}bool CMSOldPLABResizeQuicker = false {product}uintx CMSOldPLABToleranceFactor = 4 {product}bool CMSPLABRecordAlways = true {product}uintx CMSParPromoteBlocksToClaim = 16 {product}bool CMSParallelInitialMarkEnabled = true {product}bool CMSParallelRemarkEnabled = true {product}bool CMSParallelSurvivorRemarkEnabled = true {product}uintx CMSPrecleanDenominator = 3 {product}uintx CMSPrecleanIter = 3 {product}uintx CMSPrecleanNumerator = 2 {product}bool CMSPrecleanRefLists1 = true {product}bool CMSPrecleanRefLists2 = false {product}bool CMSPrecleanSurvivors1 = false {product}bool CMSPrecleanSurvivors2 = true {product}uintx CMSPrecleanThreshold = 1000 {product}bool CMSPrecleaningEnabled = true {product}bool CMSPrintChunksInDump = false {product}bool CMSPrintEdenSurvivorChunks = false {product}bool CMSPrintObjectsInDump = false {product}uintx CMSRemarkVerifyVariant = 1 {product}bool CMSReplenishIntermediate = true {product}uintx CMSRescanMultiple = 32 {product}uintx CMSSamplingGrain = 16384 {product}bool CMSScavengeBeforeRemark = false {product}uintx CMSScheduleRemarkEdenPenetration = 50 {product}uintx CMSScheduleRemarkEdenSizeThreshold = 2097152 {product}uintx CMSScheduleRemarkSamplingRatio = 5 {product}double CMSSmallCoalSurplusPercent = 1.050000 {product}double CMSSmallSplitSurplusPercent = 1.100000 {product}bool CMSSplitIndexedFreeListBlocks = true {product}intx CMSTriggerInterval = -1 {manageable}uintx CMSTriggerRatio = 80 {product}intx CMSWaitDuration = 2000 {manageable}uintx CMSWorkQueueDrainThreshold = 10 {product}bool CMSYield = true {product}uintx CMSYieldSleepCount = 0 {product}uintx CMSYoungGenPerWorker = 67108864 {pd product}uintx CMS_FLSPadding = 1 {product}uintx CMS_FLSWeight = 75 {product}uintx CMS_SweepPadding = 1 {product}uintx CMS_SweepTimerThresholdMillis = 10 {product}uintx CMS_SweepWeight = 75 {product}bool CheckEndorsedAndExtDirs = false {product}bool CheckJNICalls = false {product}bool ClassUnloading = true {product}bool ClassUnloadingWithConcurrentMark = true {product}intx ClearFPUAtPark = 0 {product}bool ClipInlining = true {product}uintx CodeCacheExpansionSize = 65536 {pd product}uintx CodeCacheMinimumFreeSpace = 512000 {product}bool CollectGen0First = false {product}bool CompactFields = true {product}intx CompilationPolicyChoice = 0 {product}
ccstrlist CompileCommand = {product}ccstr CompileCommandFile = {product}
ccstrlist CompileOnly = {product}intx CompileThreshold = 10000 {pd product}bool CompilerThreadHintNoPreempt = true {product}intx CompilerThreadPriority = -1 {product}intx CompilerThreadStackSize = 0 {pd product}uintx CompressedClassSpaceSize = 1073741824 {product}uintx ConcGCThreads = 0 {product}intx ConditionalMoveLimit = 3 {C2 pd product}intx ContendedPaddingWidth = 128 {product}bool ConvertSleepToYield = true {pd product}bool ConvertYieldToSleep = false {product}bool CrashOnOutOfMemoryError = false {product}bool CreateMinidumpOnCrash = false {product}bool CriticalJNINatives = true {product}bool DTraceAllocProbes = false {product}bool DTraceMethodProbes = false {product}bool DTraceMonitorProbes = false {product}bool Debugging = false {product}uintx DefaultMaxRAMFraction = 4 {product}intx DefaultThreadPriority = -1 {product}intx DeferPollingPageLoopCount = -1 {product}intx DeferThrSuspendLoopCount = 4000 {product}bool DeoptimizeRandom = false {product}bool DisableAttachMechanism = false {product}bool DisableExplicitGC = false {product}bool DisplayVMOutputToStderr = false {product}bool DisplayVMOutputToStdout = false {product}bool DoEscapeAnalysis = true {C2 product}bool DontCompileHugeMethods = true {product}bool DontYieldALot = false {pd product}ccstr DumpLoadedClassList = {product}bool DumpReplayDataOnError = true {product}bool DumpSharedSpaces = false {product}bool EagerXrunInit = false {product}intx EliminateAllocationArraySizeLimit = 64 {C2 product}bool EliminateAllocations = true {C2 product}bool EliminateAutoBox = true {C2 product}bool EliminateLocks = true {C2 product}bool EliminateNestedLocks = true {C2 product}intx EmitSync = 0 {product}bool EnableContended = true {product}bool EnableResourceManagementTLABCache = true {product}bool EnableSharedLookupCache = true {product}bool EnableTracing = false {product}uintx ErgoHeapSizeLimit = 0 {product}ccstr ErrorFile = {product}ccstr ErrorReportServer = {product}double EscapeAnalysisTimeout = 20.000000 {C2 product}bool EstimateArgEscape = true {product}bool ExitOnOutOfMemoryError = false {product}bool ExplicitGCInvokesConcurrent = false {product}bool ExplicitGCInvokesConcurrentAndUnloadsClasses = false {product}bool ExtendedDTraceProbes = false {product}ccstr ExtraSharedClassListFile = {product}bool FLSAlwaysCoalesceLarge = false {product}uintx FLSCoalescePolicy = 2 {product}double FLSLargestBlockCoalesceProximity = 0.990000 {product}bool FailOverToOldVerifier = true {product}bool FastTLABRefill = true {product}intx FenceInstruction = 0 {ARCH product}intx FieldsAllocationStyle = 1 {product}bool FilterSpuriousWakeups = true {product}ccstr FlightRecorderOptions = {product}bool ForceNUMA = false {product}bool ForceTimeHighResolution = false {product}intx FreqInlineSize = 325 {pd product}double G1ConcMarkStepDurationMillis = 10.000000 {product}uintx G1ConcRSHotCardLimit = 4 {product}uintx G1ConcRSLogCacheSize = 10 {product}intx G1ConcRefinementGreenZone = 0 {product}intx G1ConcRefinementRedZone = 0 {product}intx G1ConcRefinementServiceIntervalMillis = 300 {product}uintx G1ConcRefinementThreads = 0 {product}intx G1ConcRefinementThresholdStep = 0 {product}intx G1ConcRefinementYellowZone = 0 {product}uintx G1ConfidencePercent = 50 {product}uintx G1HeapRegionSize = 0 {product}uintx G1HeapWastePercent = 5 {product}uintx G1MixedGCCountTarget = 8 {product}intx G1RSetRegionEntries = 0 {product}uintx G1RSetScanBlockSize = 64 {product}intx G1RSetSparseRegionEntries = 0 {product}intx G1RSetUpdatingPauseTimePercent = 10 {product}intx G1RefProcDrainInterval = 10 {product}uintx G1ReservePercent = 10 {product}uintx G1SATBBufferEnqueueingThresholdPercent = 60 {product}intx G1SATBBufferSize = 1024 {product}intx G1UpdateBufferSize = 256 {product}bool G1UseAdaptiveConcRefinement = true {product}uintx GCDrainStackTargetSize = 64 {product}uintx GCHeapFreeLimit = 2 {product}uintx GCLockerEdenExpansionPercent = 5 {product}bool GCLockerInvokesConcurrent = false {product}uintx GCLogFileSize = 8192 {product}uintx GCPauseIntervalMillis = 0 {product}uintx GCTaskTimeStampEntries = 200 {product}uintx GCTimeLimit = 98 {product}uintx GCTimeRatio = 99 {product}uintx HeapBaseMinAddress = 2147483648 {pd product}bool HeapDumpAfterFullGC = false {manageable}bool HeapDumpBeforeFullGC = false {manageable}bool HeapDumpOnOutOfMemoryError = false {manageable}ccstr HeapDumpPath = {manageable}uintx HeapFirstMaximumCompactionCount = 3 {product}uintx HeapMaximumCompactionInterval = 20 {product}uintx HeapSizePerGCThread = 87241520 {product}bool IgnoreEmptyClassPaths = false {product}bool IgnoreUnrecognizedVMOptions = false {product}uintx IncreaseFirstTierCompileThresholdAt = 50 {product}bool IncrementalInline = true {C2 product}uintx InitialBootClassLoaderMetaspaceSize = 4194304 {product}uintx InitialCodeCacheSize = 2555904 {pd product}uintx InitialHeapSize = 0 {product}uintx InitialRAMFraction = 64 {product}double InitialRAMPercentage = 1.562500 {product}uintx InitialSurvivorRatio = 8 {product}uintx InitialTenuringThreshold = 7 {product}uintx InitiatingHeapOccupancyPercent = 45 {product}bool Inline = true {product}ccstr InlineDataFile = {product}intx InlineSmallCode = 1000 {pd product}bool InlineSynchronizedMethods = true {C1 product}bool InsertMemBarAfterArraycopy = true {C2 product}intx InteriorEntryAlignment = 16 {C2 pd product}intx InterpreterProfilePercentage = 33 {product}bool JNIDetachReleasesMonitors = true {product}bool JavaMonitorsInStackTrace = true {product}intx JavaPriority10_To_OSPriority = -1 {product}intx JavaPriority1_To_OSPriority = -1 {product}intx JavaPriority2_To_OSPriority = -1 {product}intx JavaPriority3_To_OSPriority = -1 {product}intx JavaPriority4_To_OSPriority = -1 {product}intx JavaPriority5_To_OSPriority = -1 {product}intx JavaPriority6_To_OSPriority = -1 {product}intx JavaPriority7_To_OSPriority = -1 {product}intx JavaPriority8_To_OSPriority = -1 {product}intx JavaPriority9_To_OSPriority = -1 {product}bool LIRFillDelaySlots = false {C1 pd product}uintx LargePageHeapSizeThreshold = 134217728 {product}uintx LargePageSizeInBytes = 0 {product}bool LazyBootClassLoader = true {product}intx LiveNodeCountInliningCutoff = 40000 {C2 product}bool LogCommercialFeatures = false {product}intx LoopMaxUnroll = 16 {C2 product}intx LoopOptsCount = 43 {C2 product}intx LoopUnrollLimit = 60 {C2 pd product}intx LoopUnrollMin = 4 {C2 product}bool LoopUnswitching = true {C2 product}bool ManagementServer = false {product}uintx MarkStackSize = 4194304 {product}uintx MarkStackSizeMax = 536870912 {product}uintx MarkSweepAlwaysCompactCount = 4 {product}uintx MarkSweepDeadRatio = 5 {product}intx MaxBCEAEstimateLevel = 5 {product}intx MaxBCEAEstimateSize = 150 {product}uintx MaxDirectMemorySize = 0 {product}bool MaxFDLimit = true {product}uintx MaxGCMinorPauseMillis = 4294967295 {product}uintx MaxGCPauseMillis = 4294967295 {product}uintx MaxHeapFreeRatio = 70 {manageable}uintx MaxHeapSize = 130862280 {product}intx MaxInlineLevel = 9 {product}intx MaxInlineSize = 35 {product}intx MaxJNILocalCapacity = 65536 {product}intx MaxJavaStackTraceDepth = 1024 {product}intx MaxJumpTableSize = 65000 {C2 product}intx MaxJumpTableSparseness = 5 {C2 product}intx MaxLabelRootDepth = 1100 {C2 product}intx MaxLoopPad = 15 {C2 product}uintx MaxMetaspaceExpansion = 5452592 {product}uintx MaxMetaspaceFreeRatio = 70 {product}uintx MaxMetaspaceSize = 4294967295 {product}uintx MaxNewSize = 4294967295 {product}intx MaxNodeLimit = 80000 {C2 product}uint64_t MaxRAM = 0 {pd product}uintx MaxRAMFraction = 4 {product}double MaxRAMPercentage = 25.000000 {product}intx MaxRecursiveInlineLevel = 1 {product}uintx MaxTenuringThreshold = 15 {product}intx MaxTrivialSize = 6 {product}intx MaxVectorSize = 32 {C2 product}uintx MetaspaceSize = 21810376 {pd product}bool MethodFlushing = true {product}uintx MinHeapDeltaBytes = 170392 {product}uintx MinHeapFreeRatio = 40 {manageable}intx MinInliningThreshold = 250 {product}intx MinJumpTableSize = 10 {C2 pd product}uintx MinMetaspaceExpansion = 340784 {product}uintx MinMetaspaceFreeRatio = 40 {product}uintx MinRAMFraction = 2 {product}double MinRAMPercentage = 50.000000 {product}uintx MinSurvivorRatio = 3 {product}uintx MinTLABSize = 2048 {product}intx MonitorBound = 0 {product}bool MonitorInUseLists = false {product}intx MultiArrayExpandLimit = 6 {C2 product}bool MustCallLoadClassInternal = false {product}uintx NUMAChunkResizeWeight = 20 {product}uintx NUMAInterleaveGranularity = 2097152 {product}uintx NUMAPageScanRate = 256 {product}uintx NUMASpaceResizeRate = 1073741824 {product}bool NUMAStats = false {product}ccstr NativeMemoryTracking = off {product}bool NeedsDeoptSuspend = false {pd product}bool NeverActAsServerClassMachine = false {pd product}bool NeverTenure = false {product}uintx NewRatio = 2 {product}uintx NewSize = 1363144 {product}uintx NewSizeThreadIncrease = 5320 {pd product}intx NmethodSweepActivity = 10 {product}intx NmethodSweepCheckInterval = 5 {product}intx NmethodSweepFraction = 16 {product}intx NodeLimitFudgeFactor = 2000 {C2 product}uintx NumberOfGCLogFiles = 0 {product}intx NumberOfLoopInstrToAlign = 4 {C2 product}intx ObjectAlignmentInBytes = 8 {lp64_product}uintx OldPLABSize = 1024 {product}uintx OldPLABWeight = 50 {product}uintx OldSize = 5452592 {product}bool OmitStackTraceInFastThrow = true {product}
ccstrlist OnError = {product}
ccstrlist OnOutOfMemoryError = {product}intx OnStackReplacePercentage = 140 {pd product}bool OptimizeFill = true {C2 product}bool OptimizePtrCompare = true {C2 product}bool OptimizeStringConcat = true {C2 product}bool OptoBundling = false {C2 pd product}intx OptoLoopAlignment = 16 {pd product}bool OptoScheduling = false {C2 pd product}uintx PLABWeight = 75 {product}bool PSChunkLargeArrays = true {product}intx ParGCArrayScanChunk = 50 {product}uintx ParGCDesiredObjsFromOverflowList = 20 {product}bool ParGCTrimOverflow = true {product}bool ParGCUseLocalOverflow = false {product}uintx ParallelGCBufferWastePct = 10 {product}uintx ParallelGCThreads = 0 {product}bool ParallelGCVerbose = false {product}uintx ParallelOldDeadWoodLimiterMean = 50 {product}uintx ParallelOldDeadWoodLimiterStdDev = 80 {product}bool ParallelRefProcBalancingEnabled = true {product}bool ParallelRefProcEnabled = false {product}bool PartialPeelAtUnsignedTests = true {C2 product}bool PartialPeelLoop = true {C2 product}intx PartialPeelNewPhiDelta = 0 {C2 product}uintx PausePadding = 1 {product}intx PerBytecodeRecompilationCutoff = 200 {product}intx PerBytecodeTrapLimit = 4 {product}intx PerMethodRecompilationCutoff = 400 {product}intx PerMethodTrapLimit = 100 {product}bool PerfAllowAtExitRegistration = false {product}bool PerfBypassFileSystemCheck = false {product}intx PerfDataMemorySize = 32768 {product}intx PerfDataSamplingInterval = 50 {product}ccstr PerfDataSaveFile = {product}bool PerfDataSaveToFile = false {product}bool PerfDisableSharedMem = false {product}intx PerfMaxStringConstLength = 1024 {product}intx PreInflateSpin = 10 {pd product}bool PreferInterpreterNativeStubs = false {pd product}intx PrefetchCopyIntervalInBytes = -1 {product}intx PrefetchFieldsAhead = -1 {product}intx PrefetchScanIntervalInBytes = -1 {product}bool PreserveAllAnnotations = false {product}bool PreserveFramePointer = false {pd product}uintx PretenureSizeThreshold = 0 {product}bool PrintAdaptiveSizePolicy = false {product}bool PrintCMSInitiationStatistics = false {product}intx PrintCMSStatistics = 0 {product}bool PrintClassHistogram = false {manageable}bool PrintClassHistogramAfterFullGC = false {manageable}bool PrintClassHistogramBeforeFullGC = false {manageable}bool PrintCodeCache = false {product}bool PrintCodeCacheOnCompilation = false {product}bool PrintCommandLineFlags = false {product}bool PrintCompilation = false {product}bool PrintConcurrentLocks = false {manageable}intx PrintFLSCensus = 0 {product}intx PrintFLSStatistics = 0 {product}bool PrintFlagsFinal = false {product}bool PrintFlagsInitial = false {product}bool PrintGC = false {manageable}bool PrintGCApplicationConcurrentTime = false {product}bool PrintGCApplicationStoppedTime = false {product}bool PrintGCCause = true {product}bool PrintGCDateStamps = false {manageable}bool PrintGCDetails = false {manageable}bool PrintGCID = false {manageable}bool PrintGCTaskTimeStamps = false {product}bool PrintGCTimeStamps = false {manageable}bool PrintHeapAtGC = false {product rw}bool PrintHeapAtGCExtended = false {product rw}bool PrintHeapAtSIGBREAK = true {product}bool PrintJNIGCStalls = false {product}bool PrintJNIResolving = false {product}bool PrintOldPLAB = false {product}bool PrintOopAddress = false {product}bool PrintPLAB = false {product}bool PrintParallelOldGCPhaseTimes = false {product}bool PrintPromotionFailure = false {product}bool PrintReferenceGC = false {product}bool PrintSafepointStatistics = false {product}intx PrintSafepointStatisticsCount = 300 {product}intx PrintSafepointStatisticsTimeout = -1 {product}bool PrintSharedArchiveAndExit = false {product}bool PrintSharedDictionary = false {product}bool PrintSharedSpaces = false {product}bool PrintStringDeduplicationStatistics = false {product}bool PrintStringTableStatistics = false {product}bool PrintTLAB = false {product}bool PrintTenuringDistribution = false {product}bool PrintTieredEvents = false {product}bool PrintVMOptions = false {product}bool PrintVMQWaitTime = false {product}bool PrintWarnings = true {product}uintx ProcessDistributionStride = 4 {product}bool ProfileInterpreter = true {pd product}bool ProfileIntervals = false {product}intx ProfileIntervalsTicks = 100 {product}intx ProfileMaturityPercentage = 20 {product}bool ProfileVM = false {product}bool ProfilerPrintByteCodeStatistics = false {product}bool ProfilerRecordPC = false {product}uintx PromotedPadding = 3 {product}uintx QueuedAllocationWarningCount = 0 {product}uintx RTMRetryCount = 5 {ARCH product}bool RangeCheckElimination = true {product}intx ReadPrefetchInstr = 0 {ARCH product}bool ReassociateInvariants = true {C2 product}bool ReduceBulkZeroing = true {C2 product}bool ReduceFieldZeroing = true {C2 product}bool ReduceInitialCardMarks = true {C2 product}bool ReduceSignalUsage = false {product}intx RefDiscoveryPolicy = 0 {product}bool ReflectionWrapResolutionErrors = true {product}bool RegisterFinalizersAtInit = true {product}bool RelaxAccessControlCheck = false {product}ccstr ReplayDataFile = {product}bool RequireSharedSpaces = false {product}uintx ReservedCodeCacheSize = 50331648 {pd product}bool ResizeOldPLAB = true {product}bool ResizePLAB = true {product}bool ResizeTLAB = true {pd product}bool RestoreMXCSROnJNICalls = false {product}bool RestrictContended = true {product}bool RewriteBytecodes = true {pd product}bool RewriteFrequentPairs = true {pd product}intx SafepointPollOffset = 256 {C1 pd product}intx SafepointSpinBeforeYield = 2000 {product}bool SafepointTimeout = false {product}intx SafepointTimeoutDelay = 10000 {product}bool ScavengeBeforeFullGC = true {product}intx SelfDestructTimer = 0 {product}uintx SharedBaseAddress = 0 {product}ccstr SharedClassListFile = {product}uintx SharedMiscCodeSize = 122880 {product}uintx SharedMiscDataSize = 4194304 {product}uintx SharedReadOnlySize = 16777216 {product}uintx SharedReadWriteSize = 16777216 {product}bool ShowMessageBoxOnError = false {product}intx SoftRefLRUPolicyMSPerMB = 1000 {product}bool SpecialEncodeISOArray = true {C2 product}bool SplitIfBlocks = true {C2 product}intx StackRedPages = 1 {pd product}intx StackShadowPages = 6 {pd product}bool StackTraceInThrowable = true {product}intx StackYellowPages = 3 {pd product}bool StartAttachListener = false {product}intx StarvationMonitorInterval = 200 {product}bool StressLdcRewrite = false {product}uintx StringDeduplicationAgeThreshold = 3 {product}uintx StringTableSize = 60013 {product}bool SuppressFatalErrorMessage = false {product}uintx SurvivorPadding = 3 {product}uintx SurvivorRatio = 8 {product}intx SuspendRetryCount = 50 {product}intx SuspendRetryDelay = 5 {product}intx SyncFlags = 0 {product}ccstr SyncKnobs = {product}intx SyncVerbose = 0 {product}uintx TLABAllocationWeight = 35 {product}uintx TLABRefillWasteFraction = 64 {product}uintx TLABSize = 0 {product}bool TLABStats = true {product}uintx TLABWasteIncrement = 4 {product}uintx TLABWasteTargetPercent = 1 {product}uintx TargetPLABWastePct = 10 {product}uintx TargetSurvivorRatio = 50 {product}uintx TenuredGenerationSizeIncrement = 20 {product}uintx TenuredGenerationSizeSupplement = 80 {product}uintx TenuredGenerationSizeSupplementDecay = 2 {product}intx ThreadPriorityPolicy = 0 {product}bool ThreadPriorityVerbose = false {product}uintx ThreadSafetyMargin = 52428800 {product}intx ThreadStackSize = 0 {pd product}uintx ThresholdTolerance = 10 {product}intx Tier0BackedgeNotifyFreqLog = 10 {product}intx Tier0InvokeNotifyFreqLog = 7 {product}intx Tier0ProfilingStartPercentage = 200 {product}intx Tier23InlineeNotifyFreqLog = 20 {product}intx Tier2BackEdgeThreshold = 0 {product}intx Tier2BackedgeNotifyFreqLog = 14 {product}intx Tier2CompileThreshold = 0 {product}intx Tier2InvokeNotifyFreqLog = 11 {product}intx Tier3BackEdgeThreshold = 60000 {product}intx Tier3BackedgeNotifyFreqLog = 13 {product}intx Tier3CompileThreshold = 2000 {product}intx Tier3DelayOff = 2 {product}intx Tier3DelayOn = 5 {product}intx Tier3InvocationThreshold = 200 {product}intx Tier3InvokeNotifyFreqLog = 10 {product}intx Tier3LoadFeedback = 5 {product}intx Tier3MinInvocationThreshold = 100 {product}intx Tier4BackEdgeThreshold = 40000 {product}intx Tier4CompileThreshold = 15000 {product}intx Tier4InvocationThreshold = 5000 {product}intx Tier4LoadFeedback = 3 {product}intx Tier4MinInvocationThreshold = 600 {product}bool TieredCompilation = true {pd product}intx TieredCompileTaskTimeout = 50 {product}intx TieredRateUpdateMaxTime = 25 {product}intx TieredRateUpdateMinTime = 1 {product}intx TieredStopAtLevel = 4 {product}bool TimeLinearScan = false {C1 product}bool TraceBiasedLocking = false {product}bool TraceClassLoading = false {product rw}bool TraceClassLoadingPreorder = false {product}bool TraceClassPaths = false {product}bool TraceClassResolution = false {product}bool TraceClassUnloading = false {product rw}bool TraceDynamicGCThreads = false {product}bool TraceGen0Time = false {product}bool TraceGen1Time = false {product}ccstr TraceJVMTI = {product}bool TraceLoaderConstraints = false {product rw}bool TraceMetadataHumongousAllocation = false {product}bool TraceMonitorInflation = false {product}bool TraceParallelOldGCTasks = false {product}intx TraceRedefineClasses = 0 {product}bool TraceSafepointCleanupTime = false {product}bool TraceSharedLookupCache = false {product}bool TraceSuspendWaitFailures = false {product}intx TrackedInitializationLimit = 50 {C2 product}bool TransmitErrorReport = false {product}bool TrapBasedNullChecks = false {pd product}bool TrapBasedRangeChecks = false {C2 pd product}intx TypeProfileArgsLimit = 2 {product}uintx TypeProfileLevel = 111 {pd product}intx TypeProfileMajorReceiverPercent = 90 {C2 product}intx TypeProfileParmsLimit = 2 {product}intx TypeProfileWidth = 2 {product}intx UnguardOnExecutionViolation = 0 {product}bool UnlinkSymbolsALot = false {product}bool Use486InstrsOnly = false {ARCH product}bool UseAES = false {product}bool UseAESCTRIntrinsics = false {product}bool UseAESIntrinsics = false {product}intx UseAVX = 99 {ARCH product}bool UseAdaptiveGCBoundary = false {product}bool UseAdaptiveGenerationSizePolicyAtMajorCollection = true {product}bool UseAdaptiveGenerationSizePolicyAtMinorCollection = true {product}bool UseAdaptiveNUMAChunkSizing = true {product}bool UseAdaptiveSizeDecayMajorGCCost = true {product}bool UseAdaptiveSizePolicy = true {product}bool UseAdaptiveSizePolicyFootprintGoal = true {product}bool UseAdaptiveSizePolicyWithSystemGC = false {product}bool UseAddressNop = false {ARCH product}bool UseAltSigs = false {product}bool UseAutoGCSelectPolicy = false {product}bool UseBMI1Instructions = false {ARCH product}bool UseBMI2Instructions = false {ARCH product}bool UseBiasedLocking = true {product}bool UseBimorphicInlining = true {C2 product}bool UseBoundThreads = true {product}bool UseCLMUL = false {ARCH product}bool UseCMSBestFit = true {product}bool UseCMSCollectionPassing = true {product}bool UseCMSCompactAtFullCollection = true {product}bool UseCMSInitiatingOccupancyOnly = false {product}bool UseCRC32Intrinsics = false {product}bool UseCodeCacheFlushing = true {product}bool UseCompiler = true {product}bool UseCompilerSafepoints = true {product}bool UseCompressedClassPointers = false {lp64_product}bool UseCompressedOops = false {lp64_product}bool UseConcMarkSweepGC = false {product}bool UseCondCardMark = false {C2 product}bool UseCountLeadingZerosInstruction = false {ARCH product}bool UseCountTrailingZerosInstruction = false {ARCH product}bool UseCountedLoopSafepoints = false {C2 product}bool UseCounterDecay = true {product}bool UseDivMod = true {C2 product}bool UseDynamicNumberOfGCThreads = false {product}bool UseFPUForSpilling = false {C2 product}bool UseFastAccessorMethods = true {product}bool UseFastEmptyMethods = true {product}bool UseFastJNIAccessors = true {product}bool UseFastStosb = false {ARCH product}bool UseG1GC = false {product}bool UseGCLogFileRotation = false {product}bool UseGCOverheadLimit = true {product}bool UseGCTaskAffinity = false {product}bool UseGHASHIntrinsics = false {product}bool UseHeavyMonitors = false {product}bool UseInlineCaches = true {product}bool UseInterpreter = true {product}bool UseJumpTables = true {C2 product}bool UseLWPSynchronization = true {product}bool UseLargePages = false {pd product}bool UseLargePagesInMetaspace = false {product}bool UseLargePagesIndividualAllocation := false {pd product}bool UseLockedTracing = false {product}bool UseLoopCounter = true {product}bool UseLoopInvariantCodeMotion = true {C1 product}bool UseLoopPredicate = true {C2 product}bool UseMathExactIntrinsics = true {C2 product}bool UseMaximumCompactionOnSystemGC = true {product}bool UseMembar = false {pd product}bool UseMontgomeryMultiplyIntrinsic = false {C2 product}bool UseMontgomerySquareIntrinsic = false {C2 product}bool UseMulAddIntrinsic = false {C2 product}bool UseMultiplyToLenIntrinsic = false {C2 product}bool UseNUMA = false {product}bool UseNUMAInterleaving = false {product}bool UseNewLongLShift = false {ARCH product}bool UseOSErrorReporting = false {pd product}bool UseOldInlining = true {C2 product}bool UseOnStackReplacement = true {pd product}bool UseOnlyInlinedBimorphic = true {C2 product}bool UseOptoBiasInlining = true {C2 product}bool UsePSAdaptiveSurvivorSizePolicy = true {product}bool UseParNewGC = false {product}bool UseParallelGC = false {product}bool UseParallelOldGC = false {product}bool UsePerfData = true {product}bool UsePopCountInstruction = false {product}bool UseRDPCForConstantTableBase = false {C2 product}bool UseRTMDeopt = false {ARCH product}bool UseRTMLocking = false {ARCH product}bool UseSHA = false {product}bool UseSHA1Intrinsics = false {product}bool UseSHA256Intrinsics = false {product}bool UseSHA512Intrinsics = false {product}intx UseSSE = 99 {product}bool UseSSE42Intrinsics = false {product}bool UseSerialGC = false {product}bool UseSharedSpaces = true {product}bool UseSignalChaining = true {product}bool UseSquareToLenIntrinsic = false {C2 product}bool UseStoreImmI16 = true {ARCH product}bool UseStringDeduplication = false {product}bool UseSuperWord = true {C2 product}bool UseTLAB = true {pd product}bool UseThreadPriorities = true {pd product}bool UseTypeProfile = true {product}bool UseTypeSpeculation = true {C2 product}bool UseUTCFileTimestamp = true {product}bool UseUnalignedLoadStores = false {ARCH product}bool UseVMInterruptibleIO = false {product}bool UseXMMForArrayCopy = false {product}bool UseXmmI2D = false {ARCH product}bool UseXmmI2F = false {ARCH product}bool UseXmmLoadAndClearUpper = true {ARCH product}bool UseXmmRegToRegMoveAll = false {ARCH product}bool VMThreadHintNoPreempt = false {product}intx VMThreadPriority = -1 {product}intx VMThreadStackSize = 0 {pd product}intx ValueMapInitialSize = 11 {C1 product}intx ValueMapMaxLoopSize = 8 {C1 product}intx ValueSearchLimit = 1000 {C2 product}bool VerifyMergedCPBytecodes = true {product}bool VerifySharedSpaces = false {product}intx WorkAroundNPTLTimedWaitHang = 1 {product}uintx YoungGenerationSizeIncrement = 20 {product}uintx YoungGenerationSizeSupplement = 80 {product}uintx YoungGenerationSizeSupplementDecay = 8 {product}uintx YoungPLABSize = 4096 {product}bool ZeroTLAB = false {product}intx hashCode = 5 {product}Process finished with exit code 0
9.4 查看所有的參數的最終值
9.5 查看某個參數的指令
jps 查看當前運行的所有進程
// 查看某個進程的SurvivorRatio參數
jinfo -flag SurvivorRatio 進程id