JVM学习之垃圾收集器的合理选择

JVM

  • 如何选择合适的垃圾收集器?
  • JVM参数
    • 标准参数
    • 非标准参数(JDK版本变化可能会导致参数变化)
      • -X参数
      • -XX参数

如何选择合适的垃圾收集器?

评价垃圾收集器的指标:吞吐量、停顿时间

除非程序对停顿时间有严格要求(CMS,G1),如果没有让JVM自动选择,如果有必要可以通过调整堆的大小满足性能要求:

  1. 如果应用程序非常小(100MB内),那么选择:-XX:+UseSerialGC(Serial、SerialOld)
  2. 如果应用程序是单核处理器 ,并且没有停顿时间的要求,那么让JVM自行选择,或者选择:-XX:+UseSerialGC
  3. 如果应用有性能停顿时间的要求,但停顿时间并不是太严格,可以让JVM自行选择,或者使用:-XX:+UseParallelGC(ParNew、Parallel Old、parallel Scavenge)
  4. 如果应用程序有一个 非常严格的停顿时间要求,则选择:-XX:+UseConcMarkSweepGC或者-XX:+UseG1GC

JVM参数

标准参数

-version -help -server

非标准参数(JDK版本变化可能会导致参数变化)

-X参数

java -Xint -version 改成解释执行方式
java -Xcomp -version 改成编译型执行方式
java -Xmixed -version 改成混合

-XX参数

-XX:name=value 对某个参数进行赋值
-XX:+/- name 启用或禁用
&nesp;&nesp;&nesp;&nesp;-XX:+UseG1GC;-XX:MaxHeapSize=100M(给堆内存设置最大值为100M)
针对一个Java进程而言

你可能感兴趣的:(JVM)