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 毫秒。