垃圾回收Skill GarbageCollection

垃圾回收技能是用于设计和实现编程语言或虚拟机中自动内存管理系统的专家级能力。它专注于多种垃圾回收算法(如标记-清除、复制、分代、并发)的开发与优化,涵盖对象头设计、根扫描、写屏障、卡表、记忆集、终结器、弱引用等核心组件。该技能旨在构建高效、低延迟的内存管理系统,是编译器、解释器、运行时环境及高性能应用开发的关键底层技术。关键词:垃圾回收 GC 内存管理 标记清除 分代收集 并发GC 写屏障 内存分配 虚拟机 性能优化

架构设计 0 次安装 0 次浏览 更新于 2/25/2026

名称: 垃圾回收 描述: 垃圾回收器设计与实现的专家技能,涵盖多种收集算法 类别: 内存管理 允许工具:

  • 读取
  • 写入
  • 编辑
  • 全局搜索
  • 文本搜索
  • Bash

垃圾回收技能

概述

垃圾回收器设计与实现的专家技能,涵盖多种收集算法。

能力

  • 实现标记-清除收集
  • 实现复制/半空间收集器
  • 实现带写屏障的分代收集
  • 实现并发/增量标记(三色标记)
  • 设计对象头布局和类型信息
  • 实现精确与保守的根扫描
  • 设计卡表和记忆集实现
  • 实现终结器和弱引用

目标进程

  • garbage-collector-implementation.js
  • memory-allocator-design.js
  • interpreter-implementation.js
  • bytecode-vm-implementation.js

依赖

GC手册文献(Jones, Hosking, Moss)

使用指南

  1. 算法选择:从简单的标记-清除开始,根据需要演进到分代收集
  2. 写屏障:如果考虑分代/并发GC,应尽早设计写屏障
  3. 根扫描:为实现安全性,实施精确根扫描
  4. 暂停时间:测量暂停时间并根据应用需求进行优化
  5. 测试:构建GC压力测试和分配密集型基准测试

输出模式

{
  "type": "object",
  "properties": {
    "algorithm": {
      "type": "string",
      "enum": ["mark-sweep", "copying", "mark-compact", "generational", "concurrent"]
    },
    "writeBarrier": {
      "type": "string",
      "enum": ["none", "card-table", "remembered-set", "snapshot-at-beginning", "incremental-update"]
    },
    "rootScanning": {
      "type": "string",
      "enum": ["conservative", "precise"]
    },
    "generatedFiles": {
      "type": "array",
      "items": { "type": "string" }
    }
  }
}