嗨我使用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应用程序):
将“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
答案 0 :(得分:1)
首先,Jade非常慢,可能是最慢的模板引擎(这不是秘密)。
第二个问题 - 你将模板引擎与PHP打印功能进行比较,这是错误的。尝试与Node的util.log或console.log进行比较以方便使用或在php的某些模板引擎中尝试echo(如smarty或其他):)
另外,如果你想加速 - 尝试doT(https://github.com/olado/doT)
顺便说一句,快递默认模式是开发,试试用玉器
NODE_ENV =生产节点app.js