1813
5
5516
超级版主
很多开发者初次接触 GC,会误以为它是某个开发框架、性能检测工具。GC(Garbage Collection)即垃圾回收,是编程语言的自动内存管理机制。 程序运行会源源不断创建字符串、对象、查询结果等数据,用完之后如果内存得不到释放,就会出现内存持续上涨、服务卡顿、OOM 内存溢出崩溃。C/C++ 需要开发者手动申请、释放内存;而 GC 机制让运行时自动识别废弃对象、回收内存,把开发者从繁琐易错的内存手工管理中解放出来。 但 GC 不是万能魔法:它只会回收不可达对象;只要对象仍然存在有效引用,哪怕业务逻辑已经不再使用,GC 也不会回收它,这也是托管语言内存泄漏的根本来源。本文结合各主流语言实现,讲解 GC 判定原理、经典算法、Stop‑The‑World 停顿、不同语言内存管理差异,梳理开发中高频误区,适合后端、全栈开发者阅读。
举例:局部变量指向一个用户对象,该对象存活;函数执行完毕,变量出栈,没有任何引用指向该对象,就成为待回收垃圾。
CPython 的 Python 虚拟机就是引用计数为主,配套循环垃圾回收解决循环引用问题。
核心总结:Java/C# 成熟分代 GC;Go 主打并发低停顿;Python 引用计数 + 循环 GC;JS 引擎内置 GC;Swift 是 ARC;Rust 编译期内存管理;C/C++ 手动管理内存。
举报
本版积分规则 发表回复 回帖后跳转到最后一页
相关侵权、举报、投诉及建议等,请发 E-mail:2026@typc.net
Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|晋ICP备2026008270号-1|晋公网安备14010602111293号