java8gc
A. java 的七种垃圾收集器 | Linux 中国
Java 的内存管理中,垃圾收集器(GC)起着至关重要的作用,它自动回收不再使用的对象,避免内存泄露和应用程序崩溃。
在 Java 虚拟机(JVM)中,有七种不同的垃圾收集器可供选择,每种都有其特定的目的和优势。
1、Serial 收集器:这是垃圾收集器的原始实现,使用单线程进行垃圾回收。适用于可以承受短暂停顿的应用程序。在运行时,可以通过以下命令启用该垃圾收集器:
2、Parallel 收集器:与 Serial 收集器类似,Parallel 收集器也使用“stop the world”方法,但在垃圾收集时会有多个线程参与。适用于多线程和多处理器环境下的应用程序。使用该垃圾收集器时,可以通过各种 JVM 参数进行调优。可以使用以下命令显式启用 Parallel 收集器:
3、Concurrent Mark Sweep(CMS)收集器:CMS 垃圾收集器与应用程序并行运行,适用于停顿时间较短的应用程序。在 Java8 中已过时,并在 Java14 中被移除。可以使用以下命令启用 CMS 收集器:
4、G1 收集器:G1 垃圾收集器旨在替代 GMS,具有并行、并发和增量压缩功能。它将堆内存划分为大小相同的区域,通过多个线程触发全局标记阶段。可以使用以下命令启用 G1 收集器:
5、Epsilon 收集器:在 Java11 中引入的 no-op 收集器,不做任何实际的内存回收,只负责管理内存分配。可以使用以下命令启用 Epsilon 收集器:
6、Shenandoah 收集器:在 JDK12 中引入的 CPU 密集型垃圾收集器,进行内存压缩,立即删除无用对象并释放操作系统的空间。可以使用以下命令启用 Shenandoah 收集器:
7、ZGC 收集器:为低延迟需要和大量堆空间使用而设计,允许在垃圾回收器运行时 Java 应用程序继续运行。可以使用以下命令启用 ZGC 收集器:
Java 提供了灵活的内存管理方式,熟悉不同的可用方法有助于为正在开发或运行的应用程序选择最合适的内存管理方式。
B. java8与java11有什么不同
OptaPlanner 表示,从 Java 8 到 Java 11,G1 GC 的平均速度改进为 16.1%,并行 GC 为 4.5%。此外虽然并行 GC 面向吞吐量,而 G1 则侧重于低延迟 GC,但是 Java 11 中带来的 G1 显着改进,使得将两者进行直接比较是有意义的。此外,基于基准测试中的大多数数据集来看,并行 GC 还是更适合 OptaPlanner 的,因为吞吐量对于解决 OptaPlanner 的优化问题更为重要
C. java8和java11的gc处理
Java垃圾回收概况_ava_C(Garbage Collection,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者。
当前使用量最大的_ava版本是 8,所以测试者用_ava?8与_ava?11进行对比测试。