-XX:+DisableAttachMechanism
启用该选项会导致附件在JVM的工具类如jcmd, jstack,jmap jinfo无效 。默认情况该选项无效,JVM提供的工具类可使用 。
-XX:MaxDirectMemorySize=size
设置最大直接内存大小为size,对于新IO可以使用堆外内存(直接内存)构建对象,该选项是设置这块区域的大小 。
以设置最大直接内存1MB为例:
? -XX:MaxDirectMemorySize=1m
-XX:ThreadStackSize
设置线程栈大小,等价于-Xss选项 。
高级可用性选项该类选项提供收集系统信息和debug的能力 。列举经常用到的几个选项 。
-XX:+HeapDumpOnOutOfMemory
启用该选项,当出现java.lang.OutOfMemoryError异常时,Java的堆信息会dump到当前目录的文件中,文件命名为: java_pid[进程PID].hprof,可以通过-XX:HeapDumpPath指定dump文件路径 。通过dump的文件我们利用工具,如MemoryAnalyzer,可以查看系统当时的情况,默认禁用 。
-XX:HeapDumpPath=path
指定OutOfMemoryError异常时dump文件的路径,示例如下:
# 指定dump文件路径
-XX:HeapDumpPath=/var/log/java_heapdump.hprof
-XX:LogFile=path
设置log文件,默认情况下在当前目前,命名为hotspot.log 。一般我们会利用slf4j工具设置日志,该选项倒不怎么使用 。
高级垃圾回收选项该类选项是Java HotSpot VM 用来控制垃圾回收 。
-XX:+AggressiveHeap
启用Java堆优化 。基于服务器的情况自适应的进行堆优化 。默认禁用 。
-XX:+CMSClassUnloadingEnabled
启用类卸载当使用CMS(the concurrent mark-sweep)垃圾收集器时 。默认启用 。如果禁用该选择,设置为-XX:-CMSClassUnloadingEnabled
-XX:CMSInitiatingOccupancyFraction=precent
设置老年代占比当开始CMS垃圾收集时,数值在0-100之间 。默认值-1 。
以老年代占比70%为例:
-XX:CMSInitiatingOccupancyFraction=70
1
-XX:ConcGCThreads=threads
设置垃圾回收线程的个数在并发GC时 。默认值为JVM中有效的CPU的个数 。
以线程个数2为例:
-XX:ConcGCThreads=2
1
-XX:ParallelGCThreads=threads
设置垃圾回收线程的个数在并行GC时 。默认值为JVM中有效的CPU的个数 。
以线程个数2为例:
-XX:ParallelGCThreads=2
1
-XX:+DisableExplicitGC
启用该选项,程序中调用System.gc()的处理均无效 。默认禁用该选项,即程序中显示调用System.gc()是执行的 。
-XX:InitialHeapSize=size
设置应用内存初始大小,该值为0或为1024的倍数并且大于1 MB
以设置初始内存大小为6 MB为例:
-XX:InitialHeapSize=6m
-XX:InitialHeapSize=6144k
-XX:InitialHeapSize=62914561
如果设置为0,则初始值为老年代和新生代的和 。
-XX:MaxHeapSize=size
设置应用内存最大值,该值为1024的倍数并且大于2 MB,该值通常与-XX:InitialHeapSize设置相同 。
该选项等价于-Xmx
-XX:NewRatio=ratio
设置年轻代和老年代的比值,默认为2 。
以比值为1为例:
-XX:NewRatio=1
-XX:NewSize=size
设置堆的年轻代的初始值大小,等价于选项 -Xmn
-XX:+PrintGCDetails
打印每一次GC的详细信息,默认禁用 。
-XX:+PrintGCDateStamps
每次GC均显示时间戳,默认禁用
-XX:+PrintGCApplicationStoppedTime
打印GC延迟时长,默认禁用
-XX:+UseConCMarkSweepGC
启用该选项表示在老年代的垃圾回收采用CMS垃圾回收器 。启用该选项之后,-XX:+UseParNewGC选项会自动启用,并且不能禁用 。默认禁用 。在JDK 8中,老年代使用CMS的组合方式,年轻代不使用ParNew,即-XX:-UseParNewGC和-XX:+UseConCMarkSweepGC被废弃 。
-XX:+UseG1GC
启用G1(garbage-first)垃圾收集器 。G1是一种服务器风格的垃圾收集器,针对具有大量RAM的多处理器机器 。目标是减少GC延时并且保持吞吐量 。建议在设置堆(>= 6 GB)较大时使用 。默认禁用 。
-XX:+UseParallelGC
启用Parallel Scavenge垃圾收集器,该垃圾收集器是多进程处理,目标是提高吞吐量 。该选项启用后,-XX:+UseParallelOldGC会自动启用,除非显示禁用 。默认禁用 。
-XX:+UseParallelOldGC
启用该选项,在Full GC时使用Parallel Garbage 垃圾收集器 。默认禁用 。与-XX:+UseParallelGC配对使用 。
-XX:+UseParNewGC
启用该选项,在年轻代采用并行线程垃圾回收器 。默认禁用 。在JDK 8中,年轻代使用ParNew,老年代不使用CMS的组合方式,即-XX:+UseParNewGC和-XX:-UseConCMarkSweepGC被废弃 。
-XX:+UseSerialGC
启用单线程垃圾回收器 。针对简单的小应用,不需要特别垃圾回收设置,该选项是一个交好的选择 。默认禁用 。
推荐阅读
- 14个Java并发容器,你用过几个?
- JavaScript 中对于Promise的理解
- JAVA快速入门——算数运算符
- 广东梅州,马图绿茶地理标志产品申报启动
- 天津茶文化节,迎国庆 品国饮 茶礼送健康活动周启动
- 豆浆机无法启动怎么办 豆浆机怎么启动不了
- Java I/O 入门篇
- 深入理解Java继承的实现原理
- 茗堂原生茶树保护行动启动
- Java-背包算法实现
