原文地址:深入理解JVM(五)-JVM设置参数大全
标准参数(-)
所有的JVM实现都必须实现这些参数的功能,而且向后兼容;命令 java -help可以列出java 应用启动时标准选项(不同的JVM实现是不同的)。
标准参数比较常用的
配置参数 | 说明 |
-verbose:class | 输出jvm载入类的相关信息,当jvm报告说找不到类或者类冲突时可此进行诊断。 |
-verbose:gc | 输出每次GC的相关情况。 |
-verbose:jni | 输出native方法调用的相关情况,一般用于诊断jni调用错误信息。 |
非标准参数(-X)
默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;java -X可以列出不标准的参数(这是JVM的扩展特性)。-X相关的选项不是标准的,被改变也不会通知。
非标准参数比较常用的
配置参数 | 说明 | 示例 | 默认值 | 备注 |
-Xmx | 设置JVM最大可用内存 | -Xmx83886080 -Xmx81920k -Xmx80m | 物理内存的1/4 | 必须是1024的整数倍且大于等于2M,-Xms 和 -Xmx 通常设置为相同,-Xmx选项等同于-XX:MaxHeapSize。 |
-Xmn | 设置年轻代初始及最大大小。 | -Xmn256m -Xmn262144k -Xmn268435456 | Oracle官方推荐将年轻一代的大小保持在堆总大小的一半到四分之一之间。Sun官方推荐配置为整个堆的3/8。也可以使用-XX:NewSize来设置初始大小,使用-XX:MaxNewSize设置最大大小 | |
-Xms | 设置JVM初始内存及最小内存。 | -Xms6291456 -Xms6144k -Xms6m | 物理内存的1/64 | 如果不设置此选项,则初始大小将设置为为旧代和年轻代分配的大小之和。可以使用-Xmn选项或-XX:NewSize选项设置年轻代的堆的初始大小。 请注意,-XX:InitalHeapSize选项也可以用于设置初始堆大小。如果它出现在命令行上的-Xms之后,则初始堆大小将设置为-XX:InitalHeapSize指定的值。 |
-Xss | 设置线程的栈大小 | -Xss1m -Xss1024k -Xss1048576 | 默认值取决于平台 ● Linux/ARM (32-bit): 320 KB ● Linux/i386 (32-bit): 320 KB ● Linux/x64 (64-bit): 1024 KB ● OS X (64-bit): 1024 KB ● Oracle Solaris/i386 (32-bit): 320 KB ● Oracle Solaris/x64 (64-bit): 1024 KB | 等同于-XX:ThreadStackSize |
-Xloggc | 日志文件的输出路径。 | -Xloggc:garbage-collection.log | 用于记录详细的GC事件。写入此文件的信息类似于-verbose:gc的输出,其中包含自每个记录事件之前的第一个gc事件以来经过的时间。如果同时使用了-Xloggc选项,则会覆盖-verbose:gc。 |
非Stable参数(-XX)
此类参数各个jvm实现会有所不同,这些都是不稳定的并且不推荐在生产环境中使用。将来可能会随时取消,需要慎重使用;而且如果在新版本有什么改动也不会发布通知。
参数名称 | 说明 | 示例 | 默认值 | 备注 |
-XX:+HeapDumpOnOutOfMemoryError | 当首次遭遇OOM时导出此时堆中相关信息 | 禁用 | 抛出Java.lang.OutOfMemoryError异常时将Java堆转储到当前目录中的文件,可以使用-XX:HeapDumpPath选项显式设置堆转储文件路径和名称。 | |
-XX:HeapDumpPath | 指定导出堆信息时的路径或文件名 | -XX:HeapDumpPath=./java_pid%p.hprof -XX:HeapDumpPath=/var/log/java/java_heapdump.hprof | 当前 工作目录下,名为 java_pidpid.hprof | 当-XX:+HeapDumpOnOutOfMemoryError选项开启后,当抛出OutOfMemoryError时指定dump文件生成位置 |
-XX:LogFile | 设置写入日志数据的路径和文件名。 | -XX:LogFile=/var/log/java/hotspot.log | 当前工作目录中创建的,名为hotspot.log。 | |
-XX:OnError | 出现致命ERROR之后运行自定义命令 | -XX:OnError="gcore %p;dbx - %p" | 设置在发生不可恢复的错误时要运行的自定义命令或一系列分号分隔的命令。如果字符串包含空格,则必须用引号将其括起来。 | |
-XX:OnOutOfMemoryError | 当首次遭遇OOM时执行自定义命令 | 有关命令字符串的示例,请参见-XX:OnError选项的描述。 |
高级GC参数
参数名称 | 说明 | 示例 | 默认值 | 备注 |
-XX:ActiveProcessorCount | 覆盖VM用于计算其用于各种操作(如垃圾收集和ForkJoinPool)的线程池大小的CPU数。 | -XX:ActiveProcessorCount=2 | VM通常确定操作系统中可用处理器的数量。当在docker容器中运行多个Java进程时,此标志可用于对CPU资源进行分区。即使未启用UseContainerSupport,也会使用此标志。有关启用和禁用容器支持的描述,请参见-XX:-UseContainerSupport。 | |
-XX:+AggressiveHeap | 启用Java堆优化。 | 禁用状态,堆未优化 | 根据计算机的配置(RAM和CPU),设置大量参数用于优化长时间运行任务的内存分配。 | |
-XX:+AlwaysPreTouch | 允许在JVM初始化期间触摸Java堆上的每个页面。即在服务启动的时候真实的分配物理内存给JVM,而不再是虚拟内存 | 禁用,所有页面都在JVM堆空间填充时提交 | 这会在进入main()方法之前将所有页面放入内存。该选项可用于测试,以模拟所有虚拟内存映射到物理内存的长时间运行的系统。如果没有此参数,则代码运行的时候,实时分配物理内存,导致代码运行速度变慢;如果有此参数,则jvm启动的时候速度会下降很多 | |
-XX:+CMSClassUnloadingEnabled | 在使用CMS垃圾收集器时启用类卸载。默认情况下,此选项处于启用状态。 | 启用 | 要禁用CMS垃圾回收器的类卸载,请指定-XX:-CMSClassUnloadingEnabled。 | |
-XX:CMSExpAvgFactor | 设置在计算并发收集统计信息的指数平均值时用于加权当前样本的时间百分比(0到100)。 | -XX:CMSExpAvgFactor=15 | 25 | |
-XX:CMSInitiatingOccupancyFraction | 设置老年代占用率的百分比(0到100),在该百分比下开始CMS收集周期。 | -XX:CMSInitiatingOccupancyFraction=20 | -1。 | 任何负值(包括默认值)都表示-XX:CMSTriggerRatio用于定义初始占用率的值。 |
-XX:+CMSScavengeBeforeRemark | 在CMS重新标记步骤之前启用清除尝试。 | 禁用 | ||
-XX:CMSTriggerRatio | 设置在CMS收集周期开始之前分配的由-XX:MinHeapFreeRatio指定的值的百分比(0到100)。 | -XX:CMSTriggerRatio=75 | 80 | |
-XX:ConcGCThreads | 设置用于并发GC的线程数。 | -XX:ConcGCThreads=2 | 默认值取决于JVM可用的CPU数量。 | |
-XX:+DisableExplicitGC | 禁用使用System.gc()调用的选项。 | 禁用 | 禁止显式执行GC,不允许通过代码来触发GC | |
-XX:+ExplicitGCInvokesConcurrent | 允许使用 System.gc()调用 并发GC。 | 禁用 | JVM无论什么时候调用System.gc(),都执行CMS gc,而不是Full gc ,只能与-XX:+UseConcMarkSweepGC选项一起启用。 | |
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses | 允许使用 System.gc()调用 并发GC 且在并发GC循环期间卸载类。 | 禁用 | 只能与-XX:+UseConcMarkSweepGC选项一起启用。 | |
-XX:G1HeapRegionSize | 设置的 G1 Region区域的大小 | -XX:G1HeapRegionSize=16m | 默认区域大小是根据堆大小确定的。 | 该值可以介于1 MB和32 MB之间。 |
-XX:+G1PrintHeapRegions | 允许打印有关G1采集器分配和回收的区域信息 | 禁用 | ||
-XX:G1ReservePercent | 预留内存占堆内存比值(0到50),以减少G1收集器升级失败的可能性。 | -XX:G1ReservePercent=20 | 10 | 指定G1为分配担保预留的空间比例,默认10%。也就是老年代会预留10%的空间来给新生代的对象晋升,如果经常发生新生代晋升失败而导致Full GC,那么可以适当调高此阈值。但是调高此值同时也意味着降低了老年代的实际可用空间 |
-XX:InitialHeapSize | 设置内存分配池的初始大小。此值必须为0或1024的倍数且大于等于1M,如果将此选项设置为0,则初始大小将设置为为老一代和年轻一代分配的大小之和。年轻一代的堆大小可以使用-XX:NewSize选项设置。 | -XX:InitialHeapSize=6291456 -XX:InitialHeapSize=6144k -XX:InitialHeapSize=6m | 默认值是在运行时根据系统配置选择的 | 请注意,-Xms选项设置堆的最小堆大小和初始堆大小。如果-Xms在命令行-XX:InitialHeapSize之后,则初始堆大小将设置为使用-Xms指定的值。 |
-XX:InitialRAMPercentage | 设置JVM在容器中堆的初始内存量,作为-XX:MaxRAM选项中所述确定的最大内存量的百分比。 | -XX:InitialRAMPercentage=5 | 1.5625 | |
-XX:InitialSurvivorRatio | 设置吞吐量垃圾收集器使用的初始生存空间比率(由-XX:+UseParallelGC和/或-XX:+UseParellelOldGC选项启用)。默认情况下,吞吐量垃圾收集器通过使用-XX:+UseParallelGC和-XX:+UseParellelOldGC选项启用自适应大小调整,并且从初始值开始,根据应用程序行为调整幸存者空间的大小。如果禁用了自适应大小调整(使用-XX:-UseAdaptiveSizePolicy选项),则应使用-XX:SurvivorRatio选项为应用程序的整个执行设置幸存者空间的大小。 | -XX:InitialSurvivorRatio=4 | 8 | 以下公式可用于根据年轻代的大小(Y)和初始幸存者空间比率(R)计算幸存者空间的初始大小(S): S=Y/(R+2) 方程式中的2表示两个幸存者空间。指定为初始生存空间比率的值越大,初始生存空间大小越小。 默认情况下,初始生存空间比率设置为8。如果使用年轻代空间大小的默认值(2 MB),则生存空间的初始大小将为0.2 MB。 (-XX:InitialSurvivorRatio也就是 Young/S0的比例) |
-XX:InitiatingHeapOccupancyPercent | 启动并发GC周期时的堆内存占用百分比 | -XX:InitiatingHeapOccupancyPercent=75 | 45 | G1之类的垃圾收集器基于整个整个堆的使用率触发并发GC周期,而不只是某年轻代或者老年代的内存的使用比,值为0表示不间断GC循环。 |
-XX:MaxGCPauseMillis | 最大GC暂停时间(毫秒)。 | -XX:MaxGCPauseMillis=500 | 这是一个软目标,JVM会尽力实现,但不保证达到。默认情况下,没有最大暂停时间值。 | |
-XX:MaxHeapSize | -XX:MaxHeapSize选项等效于-Xmx。 | -XX:MaxHeapSize=83886080 -XX:MaxHeapSize=81920k -XX:MaxHeapSize=80m | ||
-XX:MaxHeapFreeRatio | GC事件后允许的最大可用堆空间百分比(0到100)。如果可用堆空间超出此值,则堆将缩小。 | -XX:MaxHeapFreeRatio=75 | 70 | |
-XX:MaxMetaspaceSize | 元空间最大内存。 | -XX:MaxMetaspaceSize=256m | 无限制 | 应用程序的元空间内存取决于应用程序本身、其他正在运行的应用程序以及系统上可用的内存量。 |
-XX:MaxNewSize | 年轻代最大内存 | |||
-XX:MaxRAMPercentage | 设置JVM使用容器内存的最大百分比,以-XX:MaxRAM选项中所述的最大内存的百分比表示。 | -XX:MaxRAMPercentage=75 | 25 | 如果此选项和影响最大内存量的其他选项的组合结果大于压缩oop可寻址的内存范围,则指定此选项将禁用压缩oop的自动使用。请参阅-XX:UseCompressedOops以了解有关压缩的oops的更多信息。 |
-XX:MaxTenuringThreshold | 年轻代晋升老年代的最大年龄阈值。 | -XX:MaxTenuringThreshold=10 | 最大值为15。parallel 收集器的默认值为15,CMS收集器为6。 | 注意只是设置了最大值,配置为5,也有可能年龄到2就晋升老年代了,具体值是动态调节的,但最大年龄不会超过5 |
-XX:MetaspaceSize | 设置MetaSpace大小,该空间将在首次超过时触发垃圾收集。垃圾收集的此阈值根据使用的元数据量而增加或减少。 | -XX:MetaspaceSize=20 | 默认大小取决于平台。 | 这个参数是初始化的Metaspace大小,该值越大触发Metaspace GC的时机就越晚。随着GC的到来,虚拟机会根据实际情况调控Metaspace的大小,可能增加也可能降低。在默认情况下,这个值大小根据不同的平台在12M到20M浮动。使用java -XX:+PrintFlagsInitial命令查看本机的初始化参数,-XX:Metaspacesize为21810376B(大约20.8M)。 |
-XX:MinHeapFreeRatio | 设置GC事件后允许的最小可用堆空间百分比(0到100)。 | -XX:MinHeapFreeRatio=25 | 40 | 如果可用堆空间低于此值,则堆将被扩展 |
-XX:MinRAMPercentage | 设置JVM在应用人体工程学启发式之前可用于Java堆的最大内存量,以小堆的-XX:MaxRAM选项中所述确定的最大内存的百分比表示。小堆是大约125 MB的堆。默认值为50%。 | -XX:MinRAMPercentage=75 | 50 | MaxRAMPercentage、InitialRAMPercentage、MinRAMPercentage。是JDK8U191为适配Docker容器新增的几个参数是JDK8U191为适配Docker容器新增的几个参数 |
-XX:NewRatio | 设置年轻代和年老代的比值。 | -XX:NewRatio=1 | 2 | -XX:NewRatio=4,设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。如果设置为4,那么年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5。 |
-XX:NewSize | 等效于-Xmn | -XX:NewSize=256m -XX:NewSize=262144k -XX:NewSize=268435456 | ||
-XX:ParallelGCThreads | 设置年轻代和老年代中用于并行GC的线程数。 | -XX:ParallelGCThreads=2 | 取决于JVM可用的CPU数量。 | |
-XX:+ParallelRefProcEnabled | 启用并行处理Reference对象 | 禁用 | -XX:+ParallelRefProcEnabled开启,或者-XX:-ParallelRefProcEnabled关闭 | |
-XX:+PrintAdaptiveSizePolicy | 允许打印有关堆自适应大小调整的信息。 | 禁用 | ||
-XX:+PrintGC | 打印每次GC信息。 | 禁用 | ||
-XX:+PrintGCApplicationConcurrentTime | 启用打印自上次暂停(例如,GC暂停)以来经过的时间。 | 禁用 | ||
-XX:+PrintGCApplicationStoppedTime | 允许打印暂停(例如GC暂停)持续的时间。 | 禁用 | ||
-XX:+PrintGCDateStamps | 允许在每次GC打印时间戳。 | 禁用 | ||
-XX:+PrintGCDetails | 允许在每次GC时打印详细消息。。 | 禁用 | ||
-XX:+PrintGCTaskTimeStamps | 允许打印每个GC工作线程的时间戳。 | 禁用 | ||
-XX:+PrintGCTimeStamps | 允许在每次GC打印时间戳。 | 禁用 | ||
-XX:+PrintStringDeduplicationStatistics | 打印重复字符串清除的详细信息。 | 禁用 | 请参见-XX:+UseStringDeduplication选项。 | |
-XX:+PrintTenuringDistribution | 允许打印对象年龄信息。 | 禁用 | 以下是输出示例: Desired survivor size 48286924 bytes, new threshold 10 (max 10) - age 1: 28992024 bytes, 28992024 total - age 2: 1366864 bytes, 30358888 total - age 3: 1425912 bytes, 31784800 total ... 年龄为1的对象是最年轻的幸存者(它们是在上次清理之后创建的,在最近的清理中幸存下来,并从eden区移动到survivor 区)。年龄为2的对象经历了两次清理(在第二次清理期间,它们从survivor0复制到survivor1 )。 在前面的示例中,28 992 024个字节在一次清除中幸存下来,并从eden复制到幸存空间,1 366 864个字节被年龄2的对象占用。每行中的第三个值是年龄n或更小的对象的累积大小。 | |
-XX:+ScavengeBeforeFullGC | 在每次FULL GC之前启用YOUNG GC。 | 启用 | Oracle建议您不要禁用它,因为在FULL GC之前清除年轻代可以减少从旧代空间到年轻代空间的可访问对象数。要在每次FULL GC之前禁用年轻代的GC,请指定-XX:-ScapevenBeforeFullGC。 | |
-XX:SoftRefLRUPolicyMSPerMB | 设置软引用在上次引用后在堆上保持活动状态的时间(毫秒)。默认值是堆中每空闲兆字节一秒的生存期。 | -XX:SoftRefLRUPolicyMSPerMB=2500 | 1000 | 这意味着每兆堆中的空闲空间中的 soft reference 会(在最后一个强引用被回收之后) 存活 1 秒钟。注意,这是一个近似的值,因为 soft reference 只会在垃圾回收时才会被清除,而垃圾回收并不总在 发生。 |
-XX:StringDeduplicationAgeThreshold | 达到指定年龄的字符串对象被视为重复数据消除的候选对象。 | -XX:StringDeduplicationAgeThreshold=3 | 3 | 对象的年龄是衡量它在垃圾收集中存活了多少次的指标。这有时被称为持久性;请参见-XX:+PrintTenuringDistribution选项。请注意,在达到此期限之前升级到老年代区域的String对象始终被视为重复数据消除的候选对象。请参见-XX:+UseStringDeduplication选项。 |
-XX:SurvivorRatio | 设置eden和survivor大小比例。 | -XX:SurvivorRatio=4 | 8 | |
-XX:TargetSurvivorRatio | 设置Young GC后survivor区所需空间百分比(0到100)。 | -XX:TargetSurvivorRatio=30 | 50 | |
-XX:TLABSize | 设置本地线程分配缓冲区(TLAB)的初始大小(以字节为单位)。 | -XX:TLABSize=512k | 如果此选项设置为0,则JVM会自动选择初始大小。 | |
-XX:+UseAdaptiveSizePolicy | 启用自适应生成大小调整。 | 启用 | 要禁用自适应生成大小调整,请指定-XX:-UseAdaptiveSizePolicy并显式设置内存分配池的大小(请参见-XX:SurvivorRatio选项)。 | |
-XX:+UseCMSInitiatingOccupancyOnly | 启用设定的回收阈值(–XX:CMSInitiatingOccupancyFraction )作为启动CMS收集器的唯一标准。 | 禁用 | -XX:CMSInitiatingOccupancyFraction=70-XX:+UseCMSInitiatingOccupancyOnly,只是用设定的回收阈值(上面指定的70%),若是不指定,JVM仅在第一次使用设定值,后续则自动调整。 | |
-XX:+UseConcMarkSweepGC | 为老年代启用CMS垃圾收集器。当Parallel收集器(-XX:+UseParallelGC)垃圾收集器无法满足应用程序延迟要求时,Oracle建议您使用CMS垃圾收集器。G1垃圾收集器(-XX:+UseG1GC)是另一种选择。 | 禁用 | 默认情况下,此选项处于禁用状态,并根据机器的配置和JVM的类型自动选择收集器。启用此选项后,将自动设置-XX:+UseParNewGC选项,您不应禁用它,因为以下选项组合在JDK 8中已被弃用:-XX:+UseConcMarkSweepGC-XX:-UseParNewGC。 | |
-XX:+UseG1GC | 启用G1垃圾收集器。 | 默认情况下,此选项处于禁用状态,并根据机器的配置和JVM的类型自动选择收集器。 | G1是一个服务器式垃圾收集器,针对具有大量RAM的多处理器计算机。它以很高的概率满足GC暂停时间目标,同时保持良好的吞吐量。对于需要大堆(大小约为6 GB或更大)且GC延迟要求有限(稳定且可预测的暂停时间低于0.5秒)的应用程序,建议使用G1收集器。 | |
-XX:+UseGCOverheadLimit | 在抛出OutOfMemoryError异常之前,使用一种策略,以限制JVM在GC上花费的时间比例。 | 启用 | 如果在垃圾收集上花费的总时间超过98%,而回收的堆少于2%,则parallel GC将抛出OutOfMemoryError。当堆很小时,可以使用此功能来防止应用程序长时间运行,而进程很少或没有进展。要禁用此选项,请指定-XX:-UseGCOverheadLimit。 | |
-XX:+UseNUMA | 通过增加应用程序对低延迟内存的使用,在具有非均匀内存体系结构(NUMA)的计算机上实现应用程序的性能优化。默认情况下, | 禁用 | 此选项处于禁用状态,不会对NUMA进行优化。该选项仅在使用Parallel垃圾收集器(-XX:+UseParallelGC)时可用。 | |
-XX:+UseParallelGC | 使用Parallel垃圾收集器(也称为吞吐量收集器),通过利用多个处理器提高应用程序的性能。 | 禁用 | 默认情况下,此选项处于禁用状态,并根据机器的配置和JVM的类型自动选择收集器。如果已启用,则-XX:+UseParallelOldGC选项将自动启用,除非您明确禁用它。 | |
-XX:+UseParallelOldGC | 对Full GC使用Parallel垃圾收集器。 | 禁用 | 启用它会自动启用-XX:+UseParallelGC选项。 | |
-XX:+UseParNewGC | 在年轻代中使用 ParNew收集器 进行收集。 | 禁用 | 当您设置-XX:+UseConcMarkSweepGC选项时,它会自动启用。JDK 8不推荐使用-XX:+UseParNewGC选项而不使用-XX:+UseConcMarkSweepGC选项。 | |
-XX:+UseSerialGC | 启用串行垃圾回收器(Serial)的使用。 | 默认情况下,此选项处于禁用状态,并根据机器的配置和JVM的类型自动选择收集器。 | 对于不需要垃圾收集任何特殊功能的小型简单应用程序,这通常是最佳选择。 | |
-XX:+UseSHM | 在Linux上,允许JVM使用共享内存来设置大型页面。 | 有关详细信息,请参阅"Large Pages"。 | ||
-XX:+UseStringDeduplication | 启用字符串重复数据清除。 | 禁用 | 要使用此选项,必须启用垃圾优先(G1)垃圾收集器。请参见-XX:+UseG1GC选项。字符串重复数据消除利用了许多String对象是相同的这一事实,从而减少了Java堆上String对象的内存占用。相同的String对象可以指向并共享相同的字符数组,而不是每个String对象指向自己的字符数组。 JVM在做GC的同时会做重复字符串消除 | |
-XX:+UseTLAB | 允许在年轻代中使用本地线程分配缓冲区(TLAB)。 | 启用 | 要禁用TLAB的使用,请指定-XX:-UseTLAB。 |
JDK8中不推荐和删除的配置
参数名称 | 说明 | 备注 |
-Xincgc | 启用增量垃圾收集。JDK 8中不推荐使用此选项,没有替换项。 | |
-Xrunlibname | 加载指定的调试/分析库。此选项被-agentlib选项取代。 | |
-XX:CMSIncrementalDutyCycle | 每次增量回收垃圾的占总垃圾回收任务的比例(0到100)。 | 继-XX:+CMSIncrementalMode选项被弃用之后,JDK 8中不推荐使用此选项,没有替换项。 |
-XX:CMSIncrementalDutyCycleMin | 启用-XX:+CMSIncrementalPacing时,每次增量回收垃圾的占总垃圾回收任务的最小比例 | 继-XX:+CMSIncrementalMode选项被弃用之后,JDK 8中不推荐使用此选项,没有替换项。 |
-XX:+CMSIncrementalMode | 启用CMS采集器的增量模式。 | JDK 8中不推荐使用此选项,没有替换项,以及以CMSIncremental开头的其他选项。 |
-XX:CMSIncrementalOffset | 两次小回收之间的允许并发收集器运行的时间的百分比 | 继-XX:+CMSIncrementalMode选项被弃用之后,JDK 8中不推荐使用此选项,没有替换项。 |
-XX:+CMSIncrementalPacing | 根据JVM运行时收集的统计信息自动调整增量模式占空比。 | 继-XX:+CMSIncrementalMode选项被弃用之后,JDK 8中不推荐使用此选项,没有替换项。 |
-XX:CMSIncrementalSafetyFactor | 设置计算占空比时用于增加保守性的时间百分比(0到100) | 继-XX:+CMSIncrementalMode选项被弃用之后,JDK 8中不推荐使用此选项,没有替换项。 |
-XX:CMSInitiatingPermOccupancyFraction | 设置启动GC的永久代占用率百分比(0到100)。 | JDK 8中不推荐使用此选项,没有替换项。 |
-XX:MaxPermSiz | 设置最大永久生成空间大小(字节)。 | 此选项在JDK 8中已弃用,并被-XX:MaxMetaspaceSize选项取代。 |
-XX:PermSize | 设置分配给永久生成的空间(以字节为单位),如果超过该空间,将触发垃圾收集。 | 此选项已在JDK 8中弃用,并被-XX:MetaspaceSize选项取代。 |
-XX:+UseSplitVerifier | 启用验证过程的拆分。默认情况下,此选项在以前的版本中已启用,验证分为两个阶段:类型引用(由编译器执行)和类型检查(由JVM运行时执行)。 | JDK 8中不推荐使用此选项,现在默认情况下,验证被分割,无法禁用它。 |
-XX:+UseStringCache | 缓存常用字符串 | 此选项已从JDK 8中删除,无需更换。 |