这是内存泄漏吗? Node.js 车把零件

Is this a memory leak ? Node.js handlebars partials

heap snapshots

我 运行 在每个快照之前进行垃圾收集器。 在使用 ab 进行测试时,似乎内存使用量增加了 5mb / 100 个请求,并且在 运行ning GC

之后不会减少

看起来像是车把零件造成的泄漏。 你怎么看 ?我该如何解决这个问题?

更新

const handlebars = require("express-handlebars"); 
const cond = require("handlebars-cond").cond; 
const dateFormat = require("handlebars-dateformat"); 
app.engine('.hbs', handlebars({ defaultLayout: null, extname: '.hbs', helpers: { cond, dateFormat   } })).set("view engine", "hbs");

路由处理器

module.exports.allEmployees = (req, res, next) => {
    let startTime = new Date();
    Employee.findAllAndPopulateImage()
        .then(employees =>{     
            // printEmployees(employees);
            playSoundIfVolumeOn(req, "List of employees");
            winston.info("Treatment time : " + (new Date() - startTime));
            return res.render("employees", { employees });
        }).catch(handleError(next));
}

我认为问题是由 express-handlebars 依赖引起的 return res.send({ employees }); //return res.render("employees", { employees }); 我更改了这一行,沉重的字符串对象消失了。

heap snapshots 2

更新 它实际上是由节点检查器引起的 https://github.com/expressjs/express/issues/3751#issuecomment-424077960

我也验证了1000次请求后,内存释放成功 memoryUsage