-
我在 C# 里打开了一堆文件流和数据库连接用完就不管了,以为有垃圾回收会自动清理,结果跑久了报 too many open files、连接池也满了,因为 GC 根本不负责释放这些非托管资源的深度复盘
我有段代码要读很多文件、查很多次数据库,写得很自然:new FileStream、new SqlConnection 用完就不管,心想 C# 有垃圾回收、对象没人引用了 GC 会自动清理。功能测试都过了,可一上压力、跑久了服务就崩:报 too many open files(文件句柄太多)、连接池满了、socket 也耗尽。复盘才搞懂:.NET 的 GC 只负责回收托管堆上的内存,但文件句柄、数据…- 0
- 0
-
Python 服务内存只涨不跌:从一次 OOM 揪出几个经典内存陷阱
有个 Python 后台 worker 功能很朴素:从队列取任务、处理、写库。可它内存像潮水一样只涨不退,每隔三天就被 OOM Killer 打死,重启又从几百兆开始爬到十几个 G。加了一倍内存,只是把三天 OOM 拖成了六天。最迷惑人的是:Python 明明有垃圾回收,怎么会像 C 那样泄漏?用 tracemalloc 打出增量后真相大白:不是 GC 坏了,而是我们用几种经典写法让本该回收的对象…- 0
- 0
-
JavaScript 内存泄漏排查实战:定时器、闭包、缓存与游离 DOM
一个 Node 服务三天一 OOM、靠定时重启续命,推上去彻查后才发现:JS 有 GC 也照样漏内存,因为 GC 回收的是不可达对象,而你忘了断开的引用让它一直可达。从五类最高发的泄漏面孔(未清的定时器监听器、捕获大对象的闭包、只增不删的全局缓存、游离 DOM、囤进全局的变量)讲到三次堆快照对比法,再到追 Retainers 引用链的固定排查流水线。- 0
- 0
-
垃圾回收机制详解:从引用计数到三色标记的完全指南
"我的程序内存为什么涨了?""GC 为什么停顿这么久?"几乎每个写过 Java / Go / Node / Python 的人都问过。要回答这些问题,必须理解垃圾回收(GC)的几种基本算法和现代语言的实现选择。这篇文章用一致的视角讲完所有主流 GC,让你看到任何一篇 GC 调优文档都能知道它在说什么。 垃圾的定义 "垃圾"就是"…- 0
- 0
垃圾回收
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!




