我从快速控制器调用res.render后调试一些dustjs模板渲染迟缓。粉尘助手有一些(快速)异步调用,但即使它们被删除,我偶尔会看到模板需要多秒才能渲染,这是令人惊讶的,因为它们都是预编译的。
是否有针对dustjs的内置计时/日志记录,或者我只需要描述整个应用程序?
答案 0 :(得分:1)
您可以通过猴子修补dust.render
在Node中添加一些简单的分析:
var dust = require('dustjs-linkedin');
var render = dust.render;
dust.render = function(name, context, callback) {
var timeStart = process.hrtime();
render(name, context, function() {
var timeDiff = process.hrtime(timeStart);
console.log(name, timeDiff[0] * 1000 + timeDiff[1] / 1000000);
callback.apply(undefined, arguments);
});
};
运行应用程序时,请查看控制台以查看渲染所需的时间。渲染普通的Dust模板需要毫秒级。
> node app.js
hello 0.832608
Hello world! Using Dust version 2.7.1!
此模板需要0.8毫秒才能渲染。