JVM 的常见参数配置知道哪些?

一些常见的参数配置:

堆配置:

  • -Xms: 设置初始堆大小
  • -Xmx: 设置最大堆大小
  • -XX:NewSize=n: 设置年轻代大小
  • -XX:NewRatio=n: 设置年轻代和年老代的比值。例如,设置为3表示年轻代和年老代的比值为1:3,年轻代占整个堆内存的1/4
  • -XX:SurvivorRatio=n: 设置年轻代中Eden区和两个Survivor区的比值。注意,有两个Survivor区。例如,设置为3表示Eden: 3 Survivor: 2,一个Survivor区占整个年轻代的1/5
  • -XX:MaxPermSize=n: 设置持久代大小(Java 8及之前版本)

收集器设置:

  • -XX:+UseSerialGC: 设置串行收集器
  • -XX:+UseParallelGC: 设置并行收集器
  • -XX:+UseParallelOldGC: 设置并行年老代收集器
  • -XX:+UseConcMarkSweepGC: 设置并发标记-清除收集器

并行收集器设置:

  • -XX:ParallelGCThreads=n: 设置并行收集器进行垃圾回收时使用的CPU线程数
  • -XX:MaxGCPauseMillis=n: 设置并行收集器的最大暂停时间(如果达到该时间,垃圾回收器将停止回收)
  • -XX:GCTimeRatio=n: 设置垃圾回收时间占程序运行时间的百分比。公式为:1/(1+n)
  • -XX:+CMSIncrementalMode: 设置为增量模式,适用于单CPU情况
  • -XX:ParallelGCThreads=n: 设置并行收集器年轻代收集方式为并行收集时使用的CPU线程数

打印GC回收的过程日志信息:

  • -XX:+PrintGC
  • -XX:+PrintGCDetails
  • -XX:+PrintGCTimeStamps
  • -Xloggc:filename

标签: java, Java面试题, Java问题合集, Java编程, Java问题精选, Java常见问题