浅谈 G1 垃圾收集器

为解决 CMS 算法产生空间碎片和其它一系列的问题缺陷,HotSpot 提供了另外一种垃圾回收策略,G1(Garbage First)算法,通过参数 -XX:+UseG1GC 来启用,该算法在 JDK 7u4 版本被正式推出。

G1 垃圾收集算法主要应用在多 CPU 大内存的服务中,在满足高吞吐量的同时,竟可能的满足垃圾回收时的暂停时间,该设计主要针对如下应用场景:

  • 垃圾收集线程和应用线程并发执行,和 CMS 一样
  • 空闲内存压缩时避免冗长的暂停时间
  • 应用需要更多可预测的 GC 暂停时间
  • 不希望牺牲太多的吞吐性能
  • 不需要很大的 Java 堆

堆内存结构

1、以往的垃圾回收算法,如 CMS,使用的堆内存结构如下:

  • 新生代:eden space + 2个 survivor
  • 老年代:old space

This chapter requires login to view full content. You are viewing a preview.

Login to View Full Content

Course Curriculum

3

框架与 I/O:Spring、Netty 与 Web 容器

理解 Spring Boot 自动装配、AOP 与事务原理,掌握 Netty Reactor 模型及 Tomcat 连接处理机制,构建高内聚、易扩展的应用服务层。
4

高性能中间件:消息、缓存与存储

熟练运用 MySQL 索引/事务、Redis 缓存策略、Kafka/RocketMQ 消息可靠性,以及 ZooKeeper 分布式协调,搭建稳定、解耦的分布式数据底座。
6

云原生:容器化、可观测性与工程效能

通过 Docker/K8s 实现弹性部署,集成 Metrics/Logs/Traces 构建可观测体系,推动 DevOps 与自动化,让架构在云上持续交付与进化。