【问题标题】:Releasing big node module from memory从内存中释放大节点模块
【发布时间】:2016-01-09 11:25:59
【问题描述】:

我正在将一个大的 js 模块加载到内存中,我想在不再需要释放 RAM 时释放它。

我用来测试的代码是这样的:

var lex = require('./lex.js'); //Big module (10M array)

setInterval(() => console.log(process.memoryUsage()), 1000);

setTimeout(() => {
    lex = null;
    delete require.cache[require.resolve('./lex.js')];
}, 5000);

// this script outputs each second
// { rss: 151756800, heapTotal: 131487520, heapUsed: 108843840 }
// { rss: 151760896, heapTotal: 131487520, heapUsed: 108850024 }
// ...
// and after 5 seconds there is no change

5 秒后,进程仍在使用与初始模块加载后相同的内存。

我做错了什么?谢谢!

【问题讨论】:

    标签: node.js memory


    【解决方案1】:

    删除需要缓存将帮助您再次加载不在缓存中的内容,就我而言,它不会删除或释放您的内存

    【讨论】:

    • 他知道这行不通。这不是一个真正的答案。你知道什么起作用吗?
    • 你好 rudie,如果你需要一个 var 中的库,并且如果你删除了 var,那么 var 就没有用了,但是如果你分配了一个全局 var 并且你在 require 函数中声明了它的值,一旦你删除了需要缓存,分配的值就会消失,这样想可能会有所帮助:)
    • @krishnakumarsekar 抱歉没有帮助,但谢谢
    猜你喜欢
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 2016-05-07
    • 2015-01-24
    • 2021-01-21
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多