-Xloggc:/data/logs/gc/test-service_gc.log //指定GC日志的路径
-Xmx1G //设置JVM最大可用内存
-Xms1G //设置JVM最小内存, 此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-XX:G1NewSizePercent=25 //新生代比例下限
-XX:G1MaxNewSizePercent=50 //新生代比例上限
-XX:MaxGCPauseMillis=200 // 单次GC最大的停顿毫秒数
-XX:MaxTenuringThreshold=2 //设置对象在新生代中最大的存活次数,最大值15,并行回收机制默认为15,CMS默认为4
-XX:AutoBoxCacheMax=20000 //指定Integer类型的缓存最大值,不指定默认是127(默认缓存范围是-128~127)
-XX:HeapDumpPath=/data/logs/dump //指定HeapDump的文件路径
-XX:ErrorFile=/data/logs/err/test-service_err_%p.log //指定错误文件的路径
-XX:NumberOfGCLogFiles=3 //GC日志文件保存的个数
-XX:GCLogFileSize=50M //GC日志文件的大小
-XX:+UseGCLogFileRotation // GC 日志轮转
-XX:-RestrictContended //消除伪内存共享
-XX:-OmitStackTraceInFastThrow //抛出没有堆栈的异常
-XX:+OmitStackTraceInFastThrow //即强制要求每次都要抛出有堆栈的异常
-XX:-UseBiasedLocking //启用偏向锁
-XX:+UnlockExperimentalVMOptions //允许使用实验性参数
-XX:+UseSerialGC //设置串行收集器
-XX:+UseParallelGC //设置并行收集器
-XX:+UseParalledlOldGC //设置并行年老代收集器
-XX:+UseConcMarkSweepGC //设置并发收集器
-XX:+ExplicitGCInvokesConcurrent //当调用System.gc()的时候, 执行并行gc。默认是不开启的,只有使用-XX:+UseConcMarkSweepGC选项的时候才能开启这个选项。
-XX:CMSInitiatingOccupancyFraction=70 //CMS垃圾收集器,当老年代达到70%时,触发CMS垃圾回收
-XX:+UseCMSInitiatingOccupancyOnly //指定用设定的回收阈值(即-XX:CMSInitiatingOccupancyFraction中指定的)
-XX:+ParallelRefProcEnabled //开启并行处理Reference对象
-XX:+PrintGCApplicationStoppedTime //打印垃圾回收期间程序暂停的时间
-XX:+PrintGCApplicationConcurrentTime //打印每次垃圾回收前,程序未中断的执行时间
-XX:+PrintGCDateStamps //打印GC用时
-XX:+PrintGCDetails //打印GC详细信息
-XX:+PrintCommandLineFlags //打印命令行上的标记
-XX:+HeapDumpOnOutOfMemoryError //当抛出OOM时进行HeapDump
-XX:+AlwaysPreTouch //在服务启动的时候真实的分配物理内存给JVM,而不再是虚拟内存,效果是可以加快代码运行效率
参考: