当前位置: 首页 > news >正文

net中使用了垃圾回收机制(GC)功能

在 .NET 中,垃圾回收(GC)是全自动、非确定性、分代式、压缩式的内存自动释放机制。
面试只要能把下面 9 句话讲清,就足以让面试官点头。

1. 谁负责

CLR 的 Garbage Collector (GC) 独占线程,程序员无法主动启动或终止,只能“建议”(GC.Collect 默认会被延迟/忽略)。

2. 回收什么

只回收托管堆(Managed Heap)上的内存;
非托管资源(句柄、Socket、DB 连接)必须自己释放(Dispose/Finalizer)。

3. 分代策略(Generational)

托管堆逻辑上分成三代:
  • Gen0 – 最新分配,每次 GC 必扫;
  • Gen1 – 0 次幸存,充当“缓冲带”;
  • Gen2 – 多次幸存,_full GC 才扫;
    对象越大(≥85 000 B)直接进入 LOH(Large Object Heap),Gen2 才检查,不压缩(.NET 4.5 起可可选压缩)。

4. 根(Roots)与可达性

GC 从全局/栈/寄存器里的 根引用出发,图遍历标记“可达”;
不可达 = 垃圾,标记结束后统一回收或压缩。

5. 工作流程(单线程简化版)

  1. Suspend 托管线程 →
  2. Mark 可达对象 →
  3. Relocate 更新引用地址 →
  4. Compact 把幸存对象挤到连续空间 →
  5. Resume 线程并修复指针。
Server GC 模式下,每个 NUMA 节点一个专用 GC 线程,可与用户线程并行(Background GC)。

6. 触发时机(非确定)

  • Gen0 预算用完;
  • 分配大对象 LOH;
  • 系统物理内存告急;
  • 显式 GC.Collect(不推荐);
  • AppDomain / 进程卸载。

7. 程序员能干预什么

  • IDisposable + using —— 尽早释放非托管资源;
  • GC.SuppressFinalize(this) —— 告诉 CLR 跳过 Finalizer,避免一次额外晋升;
  • GCSettings.LatencyMode —— 短时间切换到低延迟(游戏、金融行情);
  • GCHandle —— 人工保持引用或钉住(Pin)内存供非托管代码访问。

8. 性能指标

  • % Time in GC = GC CPU 时间 / 进程 CPU 时间,< 5 % 健康;
  • Gen0/Gen1/Gen2 回收次数比值,理想 100:10:1;
  • Promotion Rate 过高说明内存压力或对象生存期过长。

9. 常见面试快问快答

表格
复制
问题一句话标准答案
GC 会立即执行吗? 不会,非确定性,由 CLR 按需触发。
能在构造器里 GC.Collect 强制释放吗? 语法可以,实际会被延迟或忽略,别这么写。
结构体会被 GC 吗? 不会,值类型随栈帧或容器释放,不受 GC 管理。
什么对象一定进入 Gen2? LOH 大对象 和多次幸存的普通对象。
Dispose 与 Finalizer 区别? Dispose 显式、确定性;Finalizer 是GC 后的保底,调用时机不可控。
http://www.hskmm.com/?act=detail&tid=30239

相关文章:

  • 2025 超景深三维显微镜厂家 TOP10 推荐:三维成像技术的行业应用标杆​
  • 音乐节奏跳动
  • CF2160 Codeforces Round 1058 (Div. 2) 游记
  • 2025年国内铝单板工厂推荐/国内铝单板厂家/ 市场铝单板推/公司榜荐
  • 一个老码农的掏心窝推荐:微擎,我后悔没早点遇到的开发利器
  • 国内铝单板工厂推荐/国内铝单板厂家/ 市场铝单板推荐:四川汇才铝业有限公司
  • 超景深显微镜厂家TOP10推荐:拓界光电引领精密观测新时代
  • 2025 闪蒸/流化床/喷雾/实验型喷雾/离心喷雾/压力喷雾/流化床喷雾/桨叶/盘式/真空耙式干燥机厂家推荐榜单:技术适配与场景落地能力成核心考量
  • 2025 年点胶机源头厂家最新推荐排行榜:自动 / 果冻胶 / 无痕内衣 / 烫钻 / 珠宝热熔胶等多类型设备优质企业精选
  • harbor 局域网https 自签名证书搭建
  • HyperWorks许可证使用报告生成
  • 2025年国内铝单板工厂推荐/国内铝单板厂家/ 市场铝单板推/公司权威排行榜荐
  • 小程序 拖动节点
  • ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01000: 超出打开游标的最大数
  • Python的解释器
  • 10月13号
  • shiro快速启动
  • netty思维导图总结
  • gitreset、revert
  • 2025 年直流电弧炉厂商最新推荐排行榜:全面剖析优质企业技术实力与产品优势,助力各行业企业精准选购适配设备贵金属/节能直流/环保直流电弧炉厂家推荐
  • 2025 海外仓服务公司最新推荐榜单:含维修换标特色服务,三大优选品牌口碑解析美国/英国/德国/法国海外仓公司推荐
  • MaxKB 的 RAG 引擎和向量存储实现细节
  • 工业相机传感器CCD的原理及基础知识
  • ubuntu22.04安装激活Navicat15详细教程
  • 20232406 2025-2026-1 《网络与系统攻防技术》实验一实验报告
  • 经验再多,可能不如有个OCP证书好使
  • 2025 国内三效废水/多效废水/母液/废液蒸发器及三效/多效/单效MVR蒸发器厂家精选指南
  • 309、清平调三首其二
  • win11系统,右键新建记事本没有了
  • 高级语言-Lec2