繁体   English   中英

这是内存泄漏吗? Node.js 车把部分

[英]Is this a memory leak ? Node.js handlebars partials

堆快照

我在每个快照之前运行垃圾收集器。 使用ab进行测试时,内存使用量似乎增加了 5mb / 100 个请求,并且在运行 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 }); return res.send({ employees }); //return res.render("employees", { employees }); 我改变了这一行,沉重的字符串对象消失了。

堆快照 2

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM