与PHP相比,NodeJS + Template引擎渲染速度较慢

时间:2014-01-23 09:28:58

标签: php performance node.js pug template-engine

嗨我使用NodeJS和模板引擎ECT和MongoDB来获取数据。

现在我有简单的代码,我将呈现: 150 x FOO。

当我使用Node.js模板引擎(ECT)渲染时,响应时间为: 1855ms

PHP响应时间为: 24ms

Node.js ECT代码:

<?- "FOO"; ?>
<?- "FOO"; ?>
<?- "FOO"; ?>
<?- "FOO"; ?>
<?- "FOO"; ?>
...

PHP代码:

<?php echo 'FOO'; ?>
<?php echo 'FOO'; ?>
<?php echo 'FOO'; ?>
<?php echo 'FOO'; ?>
<?php echo 'FOO'; ?>
...

缓存已关闭。

计数越大,NodeJS app(ECT)越慢

有什么我想念的吗?

PS:我还使用了NodeJS + Jade。它似乎更慢。

更新

重现问题的教程(使用Jade的NodeJS应用程序):

  • 尝试结帐此应用: NodeJS-app
  • 将“views / index.jade”文件更改为:

    extends layout
    
    block content
        input(type="text" value="#{'FOO'}")
        input(type="text" value="#{'FOO'}")
        input(type="text" value="#{'FOO'}")...//150x FOO (not "for" loop)
    

NodeJS:v0.10.22

MongoDB shell版本:2.4.8

Linux:Ubuntu 10.04.4 LTS

1 个答案:

答案 0 :(得分:1)

首先,Jade非常慢,可能是最慢的模板引擎(这不是秘密)。
第二个问题 - 你将模板引擎与PHP打印功能进行比较,这是错误的。尝试与Node的util.log或console.log进行比较以方便使用或在php的某些模板引擎中尝试echo(如smarty或其他):)

另外,如果你想加速 - 尝试doT(https://github.com/olado/doT
顺便说一句,快递默认模式是开发,试试用玉器

  

NODE_ENV =生产节点app.js