我想知道如何销毁缓冲区以释放内存.
我有下面的代码,它创建一个缓冲区并将其作为响应发送.这很好但是当我玩一个像75000行一样的大数组时,我可以看到我的内存占用了1Go,没关系但是当发送响应时,这个内存保存而不是免费的......我试着设置var buffer为null在脚本的末尾,但没有任何附加...是否有解决方案来释放这个记忆?
var xlsxexport = require('node-xlsx');
module.exports = {
exportExcel: function (req, res) {
var excelData = []
// ...
// Construction of the array excelData
// ...
var buffer = xlsxexport.build([{name:'export', data:excelData}])
res.set 'Content-Type', 'application/vnd.openxmlformats'
res.set 'Content-Disposition', 'attachment; filename=' + filename
res.send buffer
}
}
Run Code Online (Sandbox Code Playgroud)
如果您确信您的代码没有泄漏,并且您已经设置了每个大变量null,那么您可以尝试启动GC.
--expose-gc在运行脚本时添加选项:
node --expose-gc index.js
无论什么时候你想要你的脚本你可以调用GC:
global.gc()
但我强烈建议您在不强制GC的情况下找到一些方法.
祝好运!
| 归档时间: |
|
| 查看次数: |
4075 次 |
| 最近记录: |