测试垃圾收集器的收集速度:

G1收集器:

G1和Parallel Scavenge & Parallel Old组合谁收集的更快一些

-Xms256m
-Xmx256m
-XX:+UseG1GC
-XX:+PrintGCTimeStamps 
-XX:+PrintGCDetails 
-verbose:gc 
-Xloggc:gc.log

Parallel Scavenge & Parallel Old

G1和Parallel Scavenge & Parallel Old组合谁收集的更快一些

-Xms256m
-Xmx256m
-XX:+UseG1GC
-XX:+PrintGCTimeStamps 
-XX:+PrintGCDetails 
-verbose:gc 
-Xloggc:gc.log

同一环境运行,比较内存溢出所需时间:

G1多次试验 稳定在7000ms左右以下是日志截图

G1和Parallel Scavenge & Parallel Old组合谁收集的更快一些

Parallel Scavenge & Parallel Old 创建和收集速度会差1K 然后一直增长到堆满

G1和Parallel Scavenge & Parallel Old组合谁收集的更快一些

结论:

     堆空间较小的时候,不适用于G1

1. G1适用场景

    G1适合作为服务端垃圾收集器,应用在多处理器和大内存的条件下,可以实现高吞吐量的同时,尽可能满足垃圾收集较短可控的暂停时间,主要针对以下场景设计

像CMS一样,能与应用程序并发执行
更快速整理空闲空间
GC停顿时间更可控
不会牺牲大量吞吐性能
服务端多核CPU、JVM内存占用较大的应用(至少大于4G)
应用在运行过程中会产生大量内存碎片、需要经常压缩空间
想要更可控、可预期的GC停顿周期;防止高并发下应用雪崩现象
2.Parallel Scavenge & Parallel Old使用场景 

    适用于一些需要长期运行且对吞吐量有一定要求的后台程序。

 

相关文章:

  • 2022-12-23
  • 2021-09-11
  • 2021-07-17
  • 2021-08-14
  • 2022-03-11
  • 2021-05-16
  • 2021-05-16
猜你喜欢
  • 2022-12-23
  • 2021-12-22
  • 2021-10-23
  • 2022-02-23
  • 2021-12-06
  • 2021-06-13
  • 2021-09-16
相关资源
相似解决方案