You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS简易脚本内存持续增长问题排查求助

Node.js调试时内存缓慢增长但无泄漏的原因分析

核心原因:Chrome DevTools调试本身的开销

当你用Chrome DevTools附加到Node.js进程调试时,调试工具会持续收集、存储调试相关的元数据,这些数据不会被Node.js的垃圾回收(GC)自动清理,因此会随时间缓慢占用内存:

  • 每个异步操作(fetch、sleep生成的Promise)的调用栈记录
  • 调试会话中的异步任务追踪信息
  • V8引擎为调试保留的额外执行上下文快照

这就是你观察到每15分钟内存增长约1MB的直接原因,并非代码存在内存泄漏。

验证方式

  • 关闭Chrome DevTools,直接运行Node.js进程,内存增长会停止或维持稳定(GC会正常回收fetch响应对象、Promise实例等临时数据)
  • 对比调试模式与非调试模式的内存监控曲线,能清晰看到差异

代码本身的合理性

你的简化代码不存在内存泄漏:

  • fetch请求完成后,响应对象会被GC自动回收
  • sleep生成的Promise在resolve后会被清理
  • 基于await的异步无限循环不会阻塞事件循环,也不会堆积未处理任务

注:仅在调试模式下,DevTools的追踪逻辑才会导致这种缓慢内存增长,属于调试工具的正常开销。

内容的提问来源于stack exchange,提问作者Billy Mango

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:31:58