- Java 10 教程
- Java 10 - 主页
- Java 10 - 概述
- Java 10 - 环境设置
- Java 10 - 基于时间的发布版本控制
- Java 10 - 局部变量类型推断
- Java 10 - 新 API 和选项
- Java 10 - 删除的功能和选项
- Java 10 - 已弃用的功能和选项
- Java 10 - JIT 编译器
- Java 10 - 类数据共享
- Java 10 - 增强的垃圾收集
- Java 10 - 区域设置增强
- Java 10 - 堆分配
- Java 10 - 统一的 JDK 森林
- Java 10 - 根证书
- Java 10 - 线程本地握手
- Java其他版本教程
- Java教程
- Java 8 教程
- Java 9 教程
- Java 10 有用资源
- Java 10 - 快速指南
- Java 10 - 有用的资源
- Java 10 - 讨论
Java 10 - 增强的垃圾收集
JEP 304 - 垃圾收集器接口
在 Java 10 之前,GC(垃圾收集器)实现组件分散在代码库中,并且不易替换。Java 10 引入了 Garbage-Collector 接口,以便可以插入替代的 GC 实现。它还有助于将代码库与不同的垃圾收集实现隔离。此功能是 JEP 304 的一部分。
JEP 307 - G1 的并行完整 GC
Java 9 引入了 G1(Garbage First)垃圾收集器。G1 避免了完全垃圾收集,但如果并发线程寻找收集并且内存恢复速度不够快,用户体验就会受到影响。在 Java 10 中,现在 G1 将使用回退完整垃圾收集。
通过这一更改,G1 通过并行使用 Full GC 改善了最坏情况下的延迟。目前,G1使用单线程标记-清除-压缩算法。使用 JEP 307,并行线程将启动标记-扫描-紧凑算法。可以使用以下选项控制线程数。
$java -XX:ParallelGCThreads=4