【jvm】虚拟机之堆
目录
- 一、堆的核心概述
- 二、堆的内存细分(按分代收集理论设计)
- 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
十、截图示例
10.1 new对象指令

10.2 jdk7的gc信息

10.3 jdk8的gc信息

相关文章:
【jvm】虚拟机之堆
目录 一、堆的核心概述二、堆的内存细分(按分代收集理论设计)2.1 java7及以前2.2 java8及以后 三、堆内存大小3.1 说明3.2 参数设置3.3 默认大小3.4 手动设置3.5 jps3.6 jstat3.7 OutOfMemory举例 四、年轻代与老年代4.1 说明 五、对象分配过程5.1 说明5…...
二百零五、Flume——数据流监控工具Ganglia单机版安装以及使用Ganglia监控Flume任务的数据流(附流程截图)
一、目的 Flume采集Kafka的数据流需要实时监控,这时就需要用到监控工具Ganglia 二、Ganglia简介 Ganglia 由 gmond、gmetad 和 gweb 三部分组成。 (一)第一部分:gmond gmond(Ganglia Monitoring Daemon)…...
解决Resolving Android Dependencies问题
无论是谷歌的Admob,还是Unity的Level play, 在windows(win10, win11)下,都出现了resolving android dependencies 报错并且卡住的问题,如图: 主要错误,是找不到这个gradlew.bat文件。 在指定位置…...
深度学习技术前沿:探索与挑战
深度学习技术前沿:探索与挑战 一、引言 近年来,深度学习作为人工智能领域的重要分支,取得了令人瞩目的成就。它凭借强大的学习能力和出色的性能,在图像识别、语音识别、自然语言处理等众多任务中展现出巨大潜力。本文将深入探讨深…...
2023-11-24--oracle--实验--[Merge 语句]
oracle--实验---Merge语句 1.认知Merge 语句 • merge 语句是 sql 语句的一种。在 SQL server 、 Oracle 数据库中可用, MySQL 中不可用。 • merge 用来合并 update 和 insert 语句。目的:通过 merge 语句,根据一张表( 原数据表…...
2023亚太杯C题30页高质量word成品论文+五小问py代码+数据集+运行结果图
迈向绿色未来:中国新能源电动汽车综合分析 摘要 (完整版获取在文末!!!) 这项深入研究探讨了中国新能源电动汽车 (NEEV) 的新兴领域,涵盖从市场动态到生 态影响等广泛方面。问题一深入探讨新能…...
【docker】安装redis和mysql生产实战
docker安装诸如redis,mysql等程序非常方便,但是如果不是为了学习,生产环境的部署还是要注意很多问题的 mysql docker pull mysql:5.7mkdir -p /usr/docker/mysql/{conf,logs,data}docker run -d -p 3306:3306 --privilege...
【nlp】3.1 Transformer背景介绍及架构
Transformer背景介绍 1 Transformer的诞生2 Transformer的优势3 Transformer的市场4 Transformer架构4.1 Transformer模型的作用4.2 Transformer总体架构图4.2.1 输入部分4.2.2 输出部分包含4.2.3 编码器部分4.2.4 解码器部分1 Transformer的诞生 2018年10月,Google发出一篇论…...
喜报!美格智能连续五年荣获物联网100强企业
近日,由中国科学院主管、科学出版社主办的《互联网周刊》联合eNet研究院发布了“2023物联网企业100强”榜单,美格智能凭借在技术创新、市场表现、综合实力等多方面的健稳表现连续五年入选榜单。 《互联网周刊》创办于1998年,是最为权威的商业…...
『Confetti 喜庆散花插件の使用』
以下用 VUE3 语法 举例使用: npm install js-confetti<script setup lang"ts"> import JSConfetti from js-confetticonst confetti new JSConfetti()function showConfetti() {confetti.addConfetti() } </script><template><h1 …...
Axios 通过a标签下载文件 跨域下载
<!-- a标签占位 --><a ref"down" ></a>getTest() {this.$axios.request({url: https://cnv13.55.la/download?file_key3695fa9461a0ae59cf3148581e4fe339&handle_typeexcel2pdf,method: get,responseType: blob, // 切记类型 blob}).then(re…...
VR全景展示,“超前点播”打开娱乐行业线上营销门户
如今,人们的生活水平正在逐步提高,这种提高不仅仅是体现在衣食住行上,更多方面是体现在大众的娱乐活动上。我们可以看到,相比于过去娱乐种类的匮乏,现如今,各种娱乐活动可谓是百家争鸣,例如温泉…...
Mac安装配置typescript及在VSCode上运行ts
一、Mac上安装typescript sudo npm install -g typescript 测试一下:出现Version则证明安装成功 tsc -v 二、在VSCode上运行 新建一个xxx.ts文件,测试能否运行 console.log("helloworld") 运行报错:ts-node: command not…...
举个栗子!Tableau 技巧(260):文本表中省市县数据的灵活逐级下钻「方法二」
之前,我们分享过 🌰:实现地图中的省市县逐级下钻。有数据粉提出问题:如果不是地图,而是文本表,有什么办法可以像这样,实现地理位置逐级下钻呢? 文本表也是可以的。但是,…...
软著项目推荐 深度学习 opencv python 实现中国交通标志识别
文章目录 0 前言1 yolov5实现中国交通标志检测2.算法原理2.1 算法简介2.2网络架构2.3 关键代码 3 数据集处理3.1 VOC格式介绍3.2 将中国交通标志检测数据集CCTSDB数据转换成VOC数据格式3.3 手动标注数据集 4 模型训练5 实现效果5.1 视频效果 6 最后 0 前言 🔥 优质…...
【Java基础】Java导Excel攻略
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
maven打包可执行jar含依赖lib
修改pom.xml <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- jdk8可用,其他jdk版本可能需改插件版本 --><version>2.3.7.RE…...
虾皮知虾数据分析软件:优化您的电商经营
在当今竞争激烈的电商市场,了解市场动态、分析竞争对手和产品趋势是成功经营的关键。虾皮知虾数据分析软件是一款强大的工具,为电商卖家提供了全面的数据采集和分析功能。本文将介绍虾皮知虾数据分析软件的特点和功能,以及如何利用它来优化您…...
uniapp开发小程序-如何判断小程序是在手机端还是pc端打开
官方说明 https://developers.weixin.qq.com/miniprogram/dev/devtools/pc-dev.html 小程序如何判断是 PC 平台? 通过 getSystemInfo 官方接口(platform 是 windows) 通过 UA(PC UA 包含 MiniProgramEnv/Windows) …...
7-tcp 三次握手和四次挥手、osi七层协议,哪七层,每层有哪些?tcp和udp的区别?udp用在哪里了?
1 tcp 三次握手和四次挥手 2 osi七层协议,哪七层,每层有哪些 3 tcp和udp的区别?udp用在哪里了? 1 tcp 三次握手和四次挥手 # tcp协议---》处于osi7层协议的传输层,可靠连接,使用三次握手,四次挥…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...
