dustjs:如何分析 and/or 时间渲染?
dustjs: how to profile and/or time rendering?
我在从 express 控制器调用 res.render 后调试一些 dustjs 模板渲染缓慢。来自 dust helpers 的一些(快速)异步调用,但即使它们被删除,我偶尔也会看到模板需要几秒钟才能呈现,这令人惊讶,因为它们都是预编译的。
是否有内置的 timing/logging 用于 dustjs 或我只需要分析整个应用程序?
您可以通过猴子修补 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 毫秒。
我在从 express 控制器调用 res.render 后调试一些 dustjs 模板渲染缓慢。来自 dust helpers 的一些(快速)异步调用,但即使它们被删除,我偶尔也会看到模板需要几秒钟才能呈现,这令人惊讶,因为它们都是预编译的。
是否有内置的 timing/logging 用于 dustjs 或我只需要分析整个应用程序?
您可以通过猴子修补 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 毫秒。