Я использую модуль обработки четких изображений, чтобы изменить его размер и отобразить его в пользовательском интерфейсе.
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();
});
});
Я использую приведенный выше код на одноплатном компьютере Rock64 с оперативной памятью 1 ГБ. Когда я запускаю команду Linux htop
и наблюдаю за использованием памяти, я вижу, что использование памяти увеличивается экспоненциально с 10% до 60% после каждого вызова приложения nodejs, и оно никогда не падает.
Использование процессора
![enter image description here](https://i.stack.imgur.com/AwGQU.png)
![CPU Usage](https://i.stack.imgur.com/kdfG4.png)
Хотя это не создает никаких проблем при запуске приложения, моя единственная проблема - использование памяти не снижается, даже когда приложение не запущено, и я не уверен, что это в конечном итоге приведет к аварийному завершению приложения, если это приложение будет работать непрерывно.
или если я перенесу аналогичный фрагмент кода в облако, он будет продолжать занимать память, даже когда он не работает?
Любой, кто использует острый модуль, сталкивается с подобной проблемой или это известная проблема с node.js. У нас есть способ очистить / очистить память или узел будет выполнять сборку мусора?
Любая помощь приветствуется. Спасибо