來源:https://my.oschina.net/polly/blog/2873791
三句話捋清楚java垃圾收集器

  • 無論 -XX:+UseParallelGC 還是 -XX:+UseParallelOldGC ,新生代都是 ParallelGC,即 Parallel Scavenge,區別在於年老代,前者是串行,後者是並行。
  • 無論 -XX:+UseConcMarkSweepGC 還是 -XX:+UseParNewGC ,新生代都是ParNew,區別在於年老代,前者是CMS(當然,他失敗了就會執行serialold),後者是串行。
  • -XX:+UseSerialGC 和 -XX:+UseG1GC 就好理解了,前者都是串行,後者都是G1。


再說三句:

  • UseParNewGC java8 已廢棄
  • UseConcMarkSweepGC java9已廢棄
  • 總結前兩句,ParNew不受待見,再說多你就暈了。

不要說jdk x默認的垃圾收集器是什麼,與jdk發行版有關,同樣的代碼使用jdk8同一子版本測試在mac是parallel,在centos是serial。

java version "1.8.0_151"Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
相关文章