最近在学习jvm的相关知识,这里分享一下我整理的一些关于jvm的参数,希望能给大家帮助,谢谢! -Xms 可用的堆初始空间 -Xmx 可用的最大堆空间,
最近在学习jvm的相关知识,这里分享一下我整理的一些关于jvm的参数,希望能给大家帮助,谢谢!
-Xms | 可用的堆初始空间 |
-Xmx | 可用的最大堆空间,实际工作中可以将 -Xms、-Xmx 这两个参数设置一样大小,这样配置可以减少垃圾回收次数 |
-Xmn | 用于设置新生代的大小 |
-Xss | 线程的最大栈空间 |
-Xloggc | 指定日志输出形式,可以指定输出的日志文件 -Xloggc:log/gc.log |
-XX:+PrintGC | 在输出日志中查看垃圾回收前后堆的大小 |
-XX:+PrintGCDetails | 打印出详细的GC信息,也可以使虚拟机在推出前打印详细的信息 |
-XX:+PrintHeapAtGC | 打印垃圾回收前后堆的详细信息 |
-XX:+PrintGCTimeStamps | 打印每次GC发生的时间,该输出时间为虚拟机启动后的时间偏移量 |
-XX:+PrintGCApplicationConcurrrentTime | 打印出应用程序的执行时间 |
-XX:+PrintGCApplicationStopedTime | 打印应用程序由于GC停顿的时间 |
-XX:+PrintReferenceGC | 打印系统内软引用、弱引用、虚引用和Finallize队列 |
-server | 使用Server模式启动程序,在该模式系可以启用逃逸分析 |
-XX:+DoEscapeAnalysis | 启用逃逸分析 |
-XX:+EliminateAllocations | 开启标量替换(默认打开) |
-XX:-UseTLAB | 关闭TLAB |
-XX:PermSize/MaxPermSize | 方法区设置,默认MaxPermSize为64M,合理的方法区可以保存更多的类信息 |
-XX:MaxMetaspaceSize | jdk1.8中方法区被移除,取而代之的是元数据区,可用该配置设置元数据区的大小,元数据区是堆外的直接内存,若不指定大小,虚拟机可能会消耗掉系统的所有可用内存 |
-verbose:class | 用于跟踪类的加载和卸载 |
-XX:+TraceClassLoading | 跟踪类的加载 |
-XX:+TraceClassUnloading | 跟踪类的卸载 |
-XX:+PrintClassHistogram | java虚拟机不允许开发人员在运行时打印、查看系统中类的分布情况,配置该参数后在java控制台按下 Ctrl + Break 组合键就可以看到当前类信息的柱状图 |
-XX:+PrintVMOptions | 打印程序在运行时虚拟机接受到的命令行显示参数 |
-XX:+PrintCommandLineFlags | 打印出传递给虚拟机的显示和隐式参数(隐式参数是由虚拟机启动时自行设置的) |
-XX:+PrintFlagsFinal | 打印系统所有的参数值,可以查看系统的详细配置 |
-XX:SurvivorRatio | 用来设置新生代中 eden 空间和 from/to 空间的比例关系,-XX:SurvivorRatio=eden/from=eden/to |
-XX:NewRatio | 用来设置新生代和老年代的比例 -XX:NewRatio=老年代/新生代 |
-XX:+HeapDumpOnOutOfMemoryError | 可以在堆溢出时导出整个对的信息 |
-XX:HeapDumpPath | 配合 -XX:+HeapDumpOnOutOfMemoryError 使用,指定导出堆的存放路径 |
-XX:MaxDirectMemorySize | 设置最大可用直接内存的大小,如果不设置默认为最大的堆空间,即-Xmx,当直接内存使用超过设置值是会触发GC,如果不能释放足够的空间,直接内存溢出会引起OOM |
-XX:+UseSerialGC | 可以指定使用新生代串行收集器和老年代串行收集器,虚拟机在client模式下,它是默认默认的垃圾收集器 |
-XX:+UseParNewGC | 新生代使用ParNew回收器,老年代使用串行收集器,回收器的线程数可以用 -XX:ParallelGCThreads参数指定,一般最好和CPU数量相当,避免线程过多影响垃圾回收性能 |
-XX:+UseParallelGC | 新生代使用ParallelGC回收器,老年代使用串行收集器 |
-XX:+UseConcMarkSweepGC | 新生代使用ParNew回收器,老年代使用CMS垃圾回收器 |
-XX:+UseParalleOldlGC | 新生代使用 ParallelGC 回收器,老年代使用 ParallelOldGC 回收器, |
-XX:MaxGCPauseMillis | 设置垃圾最大收集停顿时间,它是一个大于0的整数 |
-XX:GCTimeRatio | 设置吞吐量大小,它是一个0到100之间的整数,如果他的值是n,那么系统将花费不超过1/(1 + n)的时间用于垃圾收集 |
-XX:+UseAdaptiveSizePolicy | 在 ParallelGC 垃圾回收模式下,可以打开自适应GC策略,在这种模式下新生代、eden、survivior 的比例、晋升老年代的对象年龄等参数会被自动调整,已达到在堆大小,吞吐量和停顿时间之间的平衡点 |
-XX:-CMSPrecleaningEnabled | 设置CMS垃圾回收器在并发标记后不进行预清理操作 |
-XX:ConcGCThreads 或者 -XX:ParallelCMSThreads | 指定 CMS 并发的线程数 |
-XX:+UseCMSCompactAtFullCollection | 开启CMS垃圾回收后进行一次内存碎片整理 |
-XX:CMSFullGCsBeforeCompaction | 指定多少次CMS后进行一次内存压缩 |
-XX:+UseG1GC | 打开G1收集器开关,对G1进行设置时,最重要的参数是 -XX:MaxGCPauseMillis 用来制定最大的停顿时间 |
-XX:+DisableExplicitGC | 禁用显示的gc |
-XX:PretenureSizeThreshold | 用来设置对象直接晋升为老年代的阈值,单位是字节,对串行回收器和ParNew有效,对于ParallelGC无效,默认值为 0,也就是不指定最大的晋升大小,一切由运行情况决定。 |