我正在使用清晰的图像处理模块来调整图像大小并将其呈现在 UI 上。
app.get('/api/preview-small/:filename',(req,res)=>{
let filename = req.params.filename;
sharp('files/' + filename)
.resize(200, 200, {
fit: sharp.fit.inside,
withoutEnlargement: true
})
.toFormat('jpeg')
.toBuffer()
.then(function(outputBuffer) {
res.writeHead('200',{"Content-Type":"image/jpeg"});
res.write(outputBuffer);
res.end();
});
});
我在具有 1 GB 内存的单板计算机 Rock64 上运行上述代码。当我运行 Linuxhtop
命令并监控内存利用率时,我可以看到每次调用 nodejs 应用程序后内存使用量呈指数级增长,从 10% 增加到 60%,并且从未下降。
虽然运行应用程序没有任何问题,但我唯一担心的是内存使用量不会下降,即使应用程序没有运行,我不确定如果这个应用程序连续运行最终是否会导致应用程序崩溃。
或者如果我将类似的代码片段移动到云端,即使它没有运行,它是否会继续占用内存?
任何使用sharp模块的人都面临类似的问题,或者这是node.js的一个已知问题。我们是否有办法清除/清除内存或节点会进行垃圾收集?
任何帮助表示赞赏。谢谢