【发布时间】:2020-02-26 09:49:37
【问题描述】:
我最近在 NodeJS 中编写了一个 Interval,它每 X 秒检查一次文件夹的内容。它是异步的,因此它在其余代码旁边运行以更新索引和内容。
操作系统是 Debian 9,节点为 v10.15.2 和 npm 5.8.0。
return await new Promise(resolve => {
const interval = setInterval(() => {
console.log("Checking for new files...")
fs.readdir("folder", (err,files) => {
if(files.length != cur_files.length){
console.log("New files detected!")
updateIndexes(files);
}else{
console.log("Folder is up-to-date!")
}
});
},10000);
});
}
我注意到,在使用低间隔计时器进行测试时,它会缓慢而稳定地每隔几分钟将内存使用量提高约 0.1MB。我知道这并没有很大的间隔,但是如果我在不重新启动的情况下运行它,它会随着时间的推移而累加。
代码的另一部分已经使用 Stream 进行频繁的文件读/写,我是否必须在这里使用 readdir 做类似的事情?
这是一个错误还是只是不好的做法?
提前致谢!
BR克里斯
【问题讨论】:
标签: node.js memory memory-leaks directory