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

使用mongodb-memory-server时Jest出现内存泄漏问题求助

使用mongodb-memory-server时Jest保留setup文件上下文导致内存泄漏

我在使用mongodb-memory-server时发现,setup文件的上下文会被意外保留,目前还没定位到具体原因,唯一线索是Jest似乎通过底层的Symbol(JEST_STATE_SYMBOL)属性留存了上下文。

复现数据

  • master分支:使用--inspect-brk参数时,Jest记录的堆内存从38MB增至41MB;不使用该参数时,从37MB增至71MB
  • advanced分支:无论是否使用--inspect-brk参数,堆内存都会从52MB增至104MB

(上述数值均为Jest记录的堆内存使用量)

快照拍摄时机为Jest输出Waiting for the debugger to disconnect...之后,测试中途拍摄快照也能得到类似结果。使用的测试命令为:

node --inspect-brk --expose-gc ./node_modules/.bin/jest --runInBand --logHeapUsage

已尝试的解决手段

  1. 处理get-port中的定时器:
    • 直接移除mongodb-memory-server依赖的get-port里的setInterval代码段,内存泄漏情况有所缓解:Chrome堆快照从229MB(含定时器)降至67MB(移除后),但仍有一个上下文被保留,Jest报告的堆内存稳定在约57MB
    • 替代方案:不在get-port中注释代码,而是在对应代码块后添加clearInterval(interval),效果类似,但堆内存稳定性稍差(从52MB增至55MB)
  2. 在setup.js中将mongoServer(或mongoServer._instanceInfo)设为undefined:无任何效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 08:17:10