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

NodeJS模块已缓存,为何多次require同一模块内存仍增长?

Node.js 动态重复 require 的内存与性能问题

问题背景

我在排查一款Node.js应用的内存问题,应用存在动态require的场景:

function executeSomeCode(module) {
    const m = require(module).run;
    run();
}

同一模块可能被多次传入executeSomeCode函数,也就是被重复require,我想明确这种情况是否会影响内存占用与性能。

测试过程

为验证问题,我编写了如下测试代码:

function executeFoo() {
    const foo = require('./foo').foo;
    foo();
}

function main(){
    executeFoo();
    const first = process.memoryUsage();
    for (var i = 0; i < 10000; i++) {
        executeFoo();
    }
   
    console.log(first);
    console.log(process.memoryUsage());
}

main();

其中./foo模块仅包含一个简单的日志函数。

测试结果

某次运行的内存数据输出如下:

{
  rss: 26824704,
  heapTotal: 5005312,
  heapUsed: 3157040,
  external: 1083723,
  arrayBuffers: 9898
}
{
  rss: 39321600,
  heapTotal: 8466432,
  heapUsed: 4497528,
  external: 1083763,
  arrayBuffers: 9898
}

可见rss数值有明显增长,但我对Node.js了解有限,不确定这是否属于异常问题,还是Node.js会自行处理。另外我知道Node.js会缓存已require的模块,那为什么内存仍会出现增长?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:15:29