淡海水头像
关注
00-Unity和C#的GC剖析与对比-全篇导览封面图

00-Unity和C#的GC剖析与对比-全篇导览

Unity 和 C# 的 GC 剖析与对比 — 全篇导览

系列总览:103 篇文章 · 16 个篇章 · 16 个主题文件夹
定位:从认知到源码,从原理到实战的 GC 技术百科全书
目标读者:Unity 游戏开发者、C# 后端开发者、性能优化工程师、技术面试准备者


📖 为什么需要这个系列?

垃圾回收(Garbage Collection, GC)是每个 C# 开发者都无法回避的核心话题。在 Unity 游戏开发中,GC 问题更是性能优化的头号敌人——一次不当的 GC 触发就可能导致帧率骤降、卡顿甚至闪退。然而,GC 并非黑盒不可知:从 Mono 的古老 Boehm GC,到 SGen 的分代收集,再到 Unity 的增量式 GC,以及 .NET Core 的高性能 Server GC,每种 GC 都有其设计哲学、适用场景和性能特征。

本系列旨在填补中文技术社区在 GC 深度剖析领域的空白,带你从四个层次逐步深入:

层次解决的问题
认知层GC 为什么存在?内存管理的本质矛盾是什么?
原理层Mark-Sweep 怎么工作?分代 GC 为什么快?
源码层⭐ 最核心的价值——四大 GC(Mono SGen / Boehm / Unity Incremental / .NET Core)逐行注释级源码解读
实战层如何在真机项目中诊断、优化、甚至定制 GC?

🗺️ 篇章总览

Unity和C#的GC剖析与对比/
├── 00-全篇导览与书写计划/   (1篇)  系列总览与导览说明
├── 01-认知篇/               (6篇)  GC的本质与内存模型
├── 02-原理篇/               (8篇)  GC核心算法与机制
├── 03-架构篇/               (7篇)  五大GC运行时架构
├── 04-源码深度-Mono GC/     (5篇)  Mono SGen 源码逐行解读
├── 05-源码深度-Boehm GC与IL2CPP/ (5篇) Boehm GC 源码逐行解读
├── 06-源码深度-Unity增量式GC/    (5篇) Incremental GC 源码逐行解读
├── 07-源码深度-.NET Core GC/     (6篇) .NET Core GC 源码逐行解读
├── 08-核心技术-性能优化篇/  (10篇) 语言/引擎/工程三层优化体系
├── 09-核心技术-内存管理篇/  (6篇)  资源生命周期与GC协同
├── 10-核心技术-托管互操作篇/(6篇)  C#/C++边界与零GC方案
├── 11-演进篇-GC发展史/      (5篇)  三大GC发展线横向对比
├── 12-实战篇-问题诊断/      (8篇)  Profiler/快照/CI诊断体系
├── 13-实战篇-优化案例/     (10篇) 按游戏类型分类的案例解析
├── 14-进阶篇-定制化GC实战/  (5篇)  从零构建自定义GC
├── 15-面试篇/              (10篇) 连锁追问树面试指南
└── 16-附录/                 (3篇)  术语/资源/版本

📚 各篇章详解

00-全篇导览与书写计划(1 篇)— 系列导航

编号文件名核心内容
00100-全篇导览系列总览、篇章地图、推荐阅读路径、内容统计

01-认知篇(6 篇)— GC 的本质与内存模型

解决什么问题:GC 为什么存在?内存管理的本质矛盾是什么?C# 和 Unity 的内存模型有何不同?

编号文件名核心内容关键问题
00201-认知篇-GC存在的根本原因自动内存管理 vs 手动管理、GC 的设计目标与权衡GC 为什么是必要的?
00301-认知篇-内存管理的本质矛盾吞吐量 vs 暂停时间 vs 内存开销的不可能三角为什么没有完美的 GC?
00401-认知篇-C#内存模型深度解析托管堆/栈、值类型/引用类型、GC Roots 定义C# 的内存是如何组织的?
00501-认知篇-Unity内存全景托管/原生/引擎/GPU 四层内存边界划分Unity 的内存边界在哪里?
00601-认知篇-GC性能归因分析算法缺陷 vs 使用不当、常见归因误区GC 问题到底是谁的锅?
00701-认知篇-总览-五大GC全景对比Mono SGen/Boehm/Incremental/.NET Core GC/Server GC 总览五大 GC 各有什么优缺点?

02-原理篇(8 篇)— GC 核心算法与机制

解决什么问题:GC 的核心算法是什么?分代、增量、并发这些技术各自解决了什么问题?

编号文件名核心内容关键问题
00802-原理篇-Mark-Sweep与变种算法Mark-Sweep / Mark-Compact / Copying 算法原理与对比三种经典算法各有什么优劣?
00902-原理篇-分代GC(Generation GC)代际假说、新生代/老年代、晋升策略、Write Barrier分代 GC 为什么快?
01002-原理篇-大对象堆(LOH)LOH 定义、分配策略、碎片化问题、LOH 压缩大对象为什么特殊对待?
01102-原理篇-GC Roots与对象图遍历Roots 种类、对象图遍历算法(BFS/DFS)、三色标记GC 如何知道哪些对象是活的?
01202-原理篇-Finalization机制深度解析Finalize 队列、复活现象、Dispose 模式、析构函数Finalizer 是如何工作的?有什么陷阱?
01302-原理篇-增量式GC与并发GC增量式/并发式/并行式 GC 的区别、写屏障、安全点如何减少 GC 暂停时间?
01402-原理篇-GC暂停时间的本质Stop-The-World、安全点(Safepoint)、GC 触发时机、暂停来源分析GC 暂停到底花在了哪里?
01502-原理篇-GC的视野边界GC 能管理什么/不能管理什么、非托管资源的 GC 视角、句柄引用GC 的管控范围有多大?

03-架构篇(7 篇)— 五大 GC 运行时架构

解决什么问题:不同 GC 运行时的架构是如何设计的?它们在运行时中如何嵌入和协调?

编号文件名核心内容关键问题
01603-架构篇-Mono GC架构解析Mono 运行时架构、SGen GC 嵌入位置、GC 线程模型Mono 的 GC 是如何融入运行时的?
01703-架构篇-Boehm GC架构解析Boehm 保守式 GC 原理、IL2CPP 中的 Boehm 集成、保守 vs 精确IL2CPP 为什么用 Boehm?它有什么限制?
01803-架构篇-SGen GC架构解析SGen 分代式设计、Nursery / Major Heap、并行标记SGen 相比 Boehm 提升了什么?
01903-架构篇-Unity增量式GC架构解析增量式 Mark-Sweep 设计、时间分片策略、Unity 中的定制改动Unity 增量式 GC 是怎么减少卡顿的?
02003-架构篇-.NET Core GC架构解析Server GC / Workstation GC、SOH/LOH/POH、段管理、后台 GC.NET Core GC 为什么是工业级标杆?
02103-架构篇-运行时与GC的嵌入关系运行时初始化、GC 注册 Roots、内存分配路径、GC 触发链路GC 在运行时启动后是如何被调用的?
02203-架构篇-平台差异的深层原因Android / iOS / Windows / WebGL 各平台 GC 差异及根因为什么同一代码在不同平台 GC 行为不同?

04-源码深度-Mono GC(5 篇)— Mono SGen 逐行解读

解决什么问题:Mono SGen 的源码是如何实现的?关键数据结构和算法是怎样的?

编号文件名核心内容对应源码文件
02304-源码-Mono GC总览与数据结构sgen-gc.h/c 核心结构体、线程局部分配、全局堆结构sgen-gc.c, sgen-gc.h
02404-源码-Mono GC分配路径深度解析分配管线、bump-pointer 分配、TLAB、大对象分配sgen-alloc.c
02504-源码-Mono GC标记阶段逐行解读标记栈、对象图遍历、灰色节点处理、并行标记sgen-mark.c, sgen-gray.h
02604-源码-Mono GC清扫与压缩阶段Sweep 算法、空闲链表构建、Compact / Copying 实现sgen-sweep.c, sgen-copy-object.h
02704-源码-Mono GC分代与晋升机制Nursery 收集、Major 收集、代际晋升、Remembered Setsgen-nursery.c, sgen-major.c

05-源码深度-Boehm GC 与 IL2CPP(5 篇)— Boehm GC 逐行解读

解决什么问题:Boehm GC 作为保守式 GC 的代表,其源码实现有何特点?IL2CPP 如何与之集成?

编号文件名核心内容对应源码文件
02805-源码-Boehm GC总览与数据结构标记-清扫循环、GC_proc 结构体、堆段管理alloc.c, gc_priv.h
02905-源码-Boehm GC标记阶段保守标记算法、root 发现、partial clean 机制mark.c, dbg_mlc.c
03005-源码-Boehm GC分配与碎片管理分大小类分配、空闲链表、碎片合并、懒惰 Freealloc.c, reclaim.c
03105-源码-Boehm GC在IL2CPP中的集成IL2CPP 如何适配 Boehm、GC 排除列表、内存屏障il2cpp-gc.h, boehm-gc.cpp
03205-源码-Boehm GC的局限与替代演进保守式的根因限制、SGen 替代计划、精确 GC 在 IL2CPP 中的未来跨文件分析

06-源码深度-Unity 增量式 GC(5 篇)— Incremental GC 逐行解读

解决什么问题:Unity 增量式 GC 是如何实现时间分片的?与标准 Mark-Sweep 有何不同?

编号文件名核心内容对应源码文件
03306-源码-Incremental GC总览与设计增量式 GC 设计目标、与 SGen 的关系、配置参数GarbageCollector.h
03406-源码-增量标记算法实现三色标记增量版、work 分片、写屏障实现IncrementalGC.cpp
03506-源码-时间分片与调度策略每帧分配时间片、动态调整算法、暂停预测GarbageCollector.cpp
03606-源码-增量式GC的分配与写屏障Card Table 实现、对象引用变更追踪、脏卡处理WriteBarrier.cpp
03706-源码-增量式GC的性能特征与限制增量式 GC 的适用场景、CPU 开销分析、与并发 GC 对比综合对比分析

07-源码深度-.NET Core GC(6 篇)— .NET Core GC 逐行解读

解决什么问题:.NET Core GC 作为当今最先进的 GC 之一,其源码设计有何精妙之处?

编号文件名核心内容对应源码文件
03807-源码-.NET Core GC总览与架构段管理、堆结构、GC 分代、Server/Workstation 模式gc.h, gcimpl.h
03907-源码-.NET Core GC分配路径分配上下文、bump 分配、budget 管理、LOH/VOH 分配gc.cpp (allocate)
04007-源码-.NET Core GC标记与扫描并行标记、背景标记、卡片标记、对象图遍历优化gc.cpp (mark)
04107-源码-.NET Core GC清扫与压缩计划阶段、压缩阶段、空闲列表管理、页内碎片整理gc.cpp (sweep/compact)
04207-源码-.NET Core GC后台GC实现后台标记、后台清扫、并发线程、与前台 GC 交互gc.cpp (background)
04307-源码-.NET Core GC的极致优化技术段预映射、大页面支持、CPU 分组亲和、GC 感知的分配gc.cpp (advanced)

08-核心技术-性能优化篇(10 篇)— 三层优化体系

解决什么问题:如何在 C# 和 Unity 中系统性地减少 GC 压力?

编号文件名核心内容优化维度
04408-优化-字符串与文本操作的GC陷阱字符串拼接、Substring、StringBuilder、ToString 优化语言层面
04508-优化-LINQ与函数式编程的GC代价LINQ 闭包分配、迭代器、Select/Where GC 分析、替代方案语言层面
04608-优化-闭包与匿名函数的GC分配捕获变量导致的对象分配、委托分配、static 缓存优化语言层面
04708-优化-装箱与反射的GC开销值类型装箱、typeof/GetType/MethodInfo 缓存方案语言层面
04808-优化-值类型与struct的正确使用栈分配、Copy 开销、只读 struct、ref return、in 参数语言层面
04908-优化-async状态机与Task的GC优化状态机结构体、async ValueTask、Pooling、ConfigureAwait语言层面
05008-优化-Span与零分配编程Span/Memory 原理、栈分配数组、字符串切片零分配语言层面
05108-优化-Unity API的GC陷阱清单GameObject.Find/Tag/Mesh/Physics 等 API 触发 GC 分析引擎层面
05208-优化-渲染管线与音频系统的GC分析粒子系统、物理引擎、音频播放的 GC 触发点引擎层面
05308-优化-帧级预算与GC生命周期策略GC 预算模型、分步回收策略、对象池体系、场景加载 GC 控制工程层面

09-核心技术-内存管理篇(6 篇)— 资源生命周期与 GC 协同

解决什么问题:Unity 资源系统的内存管理与 GC 如何协同工作?

编号文件名核心内容解决的关键问题
05409-内存-Unity资源生命周期全景资源从加载到卸载的完整链路、引用计数底层机制资源是怎么在内存中活着的?
05509-内存-AssetBundle与Addressables内存策略AssetBundle 内存布局、Addressables 缓存策略、资源预加载如何在 AB 系统中减少 GC 压力?
05609-内存-GPU显存管理与GC边界纹理/网格/RenderTexture 显存分配、GC 不管理的 GPU 资源GPU 内存为什么 GC 管不了?
05709-内存-Unity原生对象生命周期UnityEngine.Object 生命周期、C# 代理对象、DON'T Destroy 模式原生对象与托管对象的生死关联
05809-内存-场景与关卡切换的内存风暴场景切换的 GC 峰值、渐进式卸载、Additive 场景管理如何避免场景切换时的 GC 卡顿?
05909-内存-资源泄漏检测与治理常见泄漏模式、快照对比、引用链分析、自动化泄漏检测如何发现和修复资源泄漏?

10-核心技术-托管互操作篇(6 篇)— C#/C++ 边界与零 GC

解决什么问题:如何在 C# 和 C++ 边界处管理内存?如何利用 Unity 的底层系统实现零 GC?

编号文件名核心内容解决的关键问题
06010-互操作-C#与C++边界的内存管理P/Invoke、Marshal、内存封送、GC 与原生内存交互托管-原生边界的内存归谁管?
06110-互操作-Unsafe代码与手动内存管理unsafe 指针、stackalloc、fixed 语句、手动分配与释放如何在 C# 中手动管理内存?
06210-互操作-JobSystem与GC隔离Job 结构体限制、NativeContainer 类型、Job 中的 GC 安全Job 为什么不能访问托管对象?
06310-互操作-NativeContainer深度解析NativeArray/NativeList/NativeHashMap 实现原理、分配器NativeContainer 是如何绕过 GC 的?
06410-互操作-Burst Compiler与GC消除Burst 编译原理、托管调用消除、纯 IL2CPP 代码路径Burst 如何做到零 GC?
06510-互操作-DOTS-ECS的零GC架构Archetype、Chunk、Component 内存布局、System 无 GC 执行ECS 架构为什么能避免 GC?

11-演进篇-GC 发展史(5 篇)— 三大 GC 发展线

解决什么问题:.NET、Mono、Unity 三条 GC 发展线是如何演进的?未来的趋势是什么?

编号文件名核心内容关键问题
06611-演进-.NET GC发展史.NET Framework → .NET Core → .NET 5+ GC 演进、关键里程碑.NET GC 这 20 年是怎么进化的?
06711-演进-Mono GC发展史早期 Boehm → SGen → Hybrid SUS 演进路线Mono GC 为什么走了弯路?
06811-演进-Unity GC发展史Unity 5 之前 → IL2CPP Boehm → Incremental GC → 未来方向Unity 的 GC 之路有何特殊性?
06911-演进-国际横向对比JVM GC(G1/ZGC/Shenandoah) vs .NET GC vs Mono GC 对比Java 的 GC 领先在哪里?C# 能学什么?
07011-演进-未来趋势与技术展望无 GC 语言兴起、GC 硬件加速、Region-based 内存管理GC 的未来是消亡还是进化?

12-实战篇-问题诊断(8 篇)— 完整诊断方法论

解决什么问题:如何在真机环境中定位和分析 GC 问题?

编号文件名核心内容工具/方法
07112-诊断-Profiler精通指南Unity Profiler GC 模块详解、Deep Profile、Profiler MarkerUnity Profiler
07212-诊断-帧级GC追踪技术单帧 GC 分配追踪、分配栈、每帧 GC 预算管理Profiler + 自定义工具
07312-诊断-内存快照差分分析Memory Profiler 快照、堆对象对比、泄漏对象定位Memory Profiler
07412-诊断-真机多平台GC差异分析iOS Metal/Android Vulkan/Windows DX12 GC 行为对比平台 Profiler
07512-诊断-堆增长曲线与GC模式分析堆大小时间序列、GC 频率/持续时间统计、模式识别自定义分析工具
07612-诊断-CI/CD中的GC自动化监测自动化内存测试、GC 分配回归检测、CI 门禁CI Pipeline
07712-诊断-外部工具链集成PerfView/.NET Memory Profiler/dotMemory/WinDbg 在 Unity 中的应用外部工具链
07812-诊断-从崩溃到GC的根因追溯常见 GC 相关崩溃模式、Dump 分析、GC 日志解读崩溃分析

13-实战篇-优化案例(10 篇)— 按游戏类型分类

解决什么问题:不同类型的游戏(UI/战斗/开放世界等)各自的 GC 问题有何特征?如何解决?

编号文件名核心内容案例类型
07913-案例-UI系统的GC优化列表滚动 GC、UI 更新频率控制、Text 复用池、图集管理UI 密集型
08013-案例-战斗系统的GC优化技能创建与销毁、子弹池、伤害数字 GC、Buff/Debuff 管理战斗密集型
08113-案例-动画系统的GC优化Animator GC 问题、AnimationClip 加载、IK 更新、状态机分配动画密集型
08213-案例-寻路与AI系统的GC优化NavMesh 更新、A* 路径缓存、行为树节点池、感知系统AI 密集型
08313-案例-网络同步与序列化GC优化消息序列化 GC、内存流复用、协议缓冲池、心跳 GC网络密集型
08413-案例-MMO-开放世界的GC管理大地图区域加载、Entity 生命周期、场景流式加载、LOD GC大型世界
08513-案例-FPS-MOBA的实时GC策略高帧率下的 GC 预算、武器系统零分配、技能预分配实时竞技
08613-案例-VR-AR的极致GC要求VR 帧率要求下的 GC 策略、双眼渲染 GC、交互反馈零分配VR/AR
08713-案例-音频与物理系统的GC优化AudioSource 管理、物理碰撞事件 GC、触发器回调优化音频/物理
08813-案例-项目级GC优化全流程从立项到上线完整 GC 治理流程、性能门禁体系、迭代优化全流程

14-进阶篇-定制化 GC 实战(5 篇)— 从零构建自定义 GC

解决什么问题:如何从零构建一个可运行的 GC?通过实操理解 GC 的本质。

编号文件名核心内容实践目标
08914-进阶-最小Mark-Sweep框架内存池管理、标记栈实现、清扫算法、完整可运行的 Mini GC实现一个能工作的 GC
09014-进阶-引入分代与紧缩两代设计、新生代 Copying、老年代 Mark-Compact、晋升策略为 Mini GC 加入分代
09114-进阶-时间分片增量回收增量标记实现、写屏障、安全点、调度器实现增量式 GC
09214-进阶-与工业级GC的对比反思Mini GC vs SGen vs .NET Core GC 对比、学到了什么反思与洞察
09314-进阶-定制GC在Unity中的集成实验在 Unity 中使用自定义分配器、替换默认 GC 的可行性分析极限探索

15-面试篇(10 篇)— 连锁追问树面试指南

定位:针对 Unity 客户端/C# 后端开发面试中 GC 相关的所有考点。每道题包含:主答 → 追问 → 深度追问。

编号文件名覆盖领域核心面试题(示例)
09415-面试篇-基础概念与原理GC 基础、算法、分代、LOH• GC 是什么?为什么需要 GC?
• Mark-Sweep 和 Mark-Compact 的区别?
• 分代 GC 为什么高效?代际假说是什么?
09515-面试篇-C#内存管理深度值类型/引用类型、堆/栈、装箱/闭包• 值类型和引用类型在内存上有什么区别?
• 装箱是如何发生的?如何避免?
• 闭包导致 GC 分配的原理?如何修复?
09615-面试篇-Unity GC专项Unity GC 特点、增量式 GC、API 陷阱• Unity 的 GC 和普通 .NET GC 有什么不同?
• Unity 增量式 GC 的原理和限制?
• 列举 Unity API 中常见的 GC 陷阱?
09715-面试篇-IL2CPP GC专项Boehm 限制、SGen、IL2CPP 内存管理• IL2CPP 为什么使用 Boehm GC?有什么问题?
• IL2CPP 在 iOS 上的内存管理有什么特殊之处?
09815-面试篇-DOTS-ECS与GCJobSystem、Burst、NativeContainer• ECS 如何实现零 GC?
• NativeContainer 为什么不受 GC 管理?
• Burst Compiler 如何消除托管调用?
09915-面试篇-源码分析与GC原理GC 源码、算法实现细节• GC Roots 有哪些种类?Mono 和 .NET Core 的 Roots 有什么不同?
• 三色标记算法的详细过程?增量式 GC 如何解决漏标问题?
10015-面试篇-实战优化经验项目优化案例、问题定位• 项目上线后遇到 GC 导致的卡顿,如何排查?
• 如何制定团队 GC 优化规范?
10115-面试篇-代码审查与GCCR 中的 GC 问题识别• 代码 Review 时如何发现 GC 问题?
• 以下这段代码有什么 GC 问题?(给出代码片段)
10215-面试篇-场景设计与架构大规模场景下的内存架构• 设计一个大型开放世界的资源管理系统,如何控制 GC?
• 场景切换时如何避免 GC 风暴?
10315-面试篇-版本演进与未来GC 发展史、趋势、对比• 从 .NET Framework 到 .NET Core,GC 做了哪些重大改进?
• GC 会被替代吗?Region-based 内存管理会成为未来吗?

16-附录(3 篇)

编号文件名核心内容
附录A附录A-术语表.mdGC 核心术语中英文对照(分配/标记/清扫/压缩/分代/增量/并发/安全点 等)
附录B附录B-参考资源.mdGC 经典论文/书籍/博客/源码仓库/视频课程
附录C附录C-版本信息.mdMono/Unity/.NET SDK 版本与对应 GC 版本的兼容性

🎯 推荐阅读路径

根据你的背景和目标,选择最适合的阅读路径:

路径 A:快速扫盲(1-2 小时)

01-认知篇 → 02-原理篇(核心算法) → 11-演进篇 → 15-面试篇(基础题)

适合:面试冲刺、GC 概念补强、想快速建立 GC 知识体系。

路径 B:优化实战(1-2 天)

01-认知篇 → 02-原理篇 → 08-优化篇 → 09-内存篇 → 12-诊断篇 → 13-案例篇

适合:项目正面临 GC 性能问题,需要系统化解决方案。

路径 C:源码研究(1-2 周)

02-原理篇 → 03-架构篇 → 04~07-源码深度(四大GC) → 14-进阶篇(定制GC)

适合:底层研究者、运行时贡献者、技术狂热者。

路径 D:零 GC 方案专项(1 天)

01-认知篇(内存全景) → 10-互操作篇 → 08-优化篇(Span/DOTS相关)

适合:对 DOTS/ECS/Burst 零 GC 方案感兴趣。

路径 E:全面精通(2-3 个月)

全部 105 篇文章,按编号顺序阅读

适合:希望成为 GC 领域专家的开发者。


📊 内容统计

维度数据
文章总数105 篇(持续更新中)
篇章数量16 个
主题文件夹16 个
覆盖 GC 运行时Mono SGen、Boehm GC、Unity Incremental GC、.NET Core GC、Server GC
源码覆盖路径sgen-gc.c、alloc.c、mark.c、IncrementalGC.cpp、gc.cpp、gc.h
对比方案Mono GC vs .NET Core GC vs JVM GC 横向对比
实战案例覆盖UI/战斗/动画/AI/网络/MMO/开放世界/FPS/MOBA/VR/音频/物理
面试题数量10 篇 × 5~8 题 = 50+ 道连锁追问题
目标 Unity 版本2018.4 ~ 6000.x
目标 .NET 版本.NET Framework 4.x ~ .NET 8/9
覆盖平台Windows/macOS/iOS/Android/WebGL

🔗 快速导航

篇章文件数快速链接
导览与计划100-全篇导览与书写计划/
认知篇601-认知篇/
原理篇802-原理篇/
架构篇703-架构篇/
源码-Mono GC504-源码深度-Mono GC/
源码-Boehm GC505-源码深度-Boehm GC与IL2CPP/
源码-Incremental GC506-源码深度-Unity增量式GC/
源码-.NET Core GC607-源码深度-.NET Core GC/
性能优化1008-核心技术-性能优化篇/
内存管理609-核心技术-内存管理篇/
托管互操作610-核心技术-托管互操作篇/
演进史511-演进篇-GC发展史/
问题诊断812-实战篇-问题诊断/
优化案例1013-实战篇-优化案例/
定制化 GC514-进阶篇-定制化GC实战/
面试篇1015-面试篇/
附录316-附录/

最后更新:2026-07-14
维护状态:持续更新中
定位:中文技术社区最全面的 Unity/C# GC 深度剖析系列

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/chenghai37/article/details/166689865

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--