PHP 与 Node.js - 在 Node.js 中使用 Jade 的 HTML 渲染速度会变慢吗?

Posted

技术标签:

【中文标题】PHP 与 Node.js - 在 Node.js 中使用 Jade 的 HTML 渲染速度会变慢吗?【英文标题】:PHP vs Node.js - Is HTML Rendering slower in Node.js with Jade? 【发布时间】:2011-09-05 22:36:48 【问题描述】:

假设我们每天有数百万个请求。使用 Jade 在 Node.js 中的 HTML 处理比 PHP 的渲染引擎慢还是快?还是因为差别很小所以没关系?

我正在使用Node.js 和Jade template engine,我真的很喜欢。但我一直是担心表现的人。我从 php 开始了我的开发生涯,这很有趣,但现在 Node 似乎好多了,所以我决定切换。

我使用 Jade 来渲染 html,因为 node.js 单独缺少它(我知道这听起来有点愚蠢,因为 Jade 也是节点:P)。但是因为 Jade 是 Node 中的一个模块,所以我有点困惑,也许这会减慢渲染过程。

【问题讨论】:

您确实意识到延迟和数据库访问通常是主要瓶颈。我很想说 v8 中的模板明显更快,因为 v8 只是 fast(基准声称比 PHP 快 5 到 50 倍) @Raynos v8 是 useless when you use with statement ... :d 感谢上帝玉将其删除。在 techempower 基准测试中,它比 php 慢 3 倍。希望下次他们使用更新版本的库时:-) 【参考方案1】:

Jade 不是为速度而设计的,而是为优雅而设计的。如果您真的关心速度,还有其他更快的 javascript 渲染引擎。

查看http://jsperf.com/dom-vs-innerhtml-based-templating/63(请注意,chrome 结果与 node.js 性能非常匹配)

但这都是假设渲染引擎是瓶颈,而不是数据库。

【讨论】:

【参考方案2】:

Jade 模板是内存缓存的,因此第二个请求几乎是立即的。 如果你担心jade模板的速度,你可以使用self选项。

【讨论】:

【参考方案3】:

Jade 中的视图被编译为实际的 Javascript,然后被缓存以备后用。在渲染方面,Jade 与渲染一个用原始 Javascript 编写的页面一样快。编译时间确实增加了初始开销,但您应该只需要编译一次代码(最有可能在节点最初启动时)。

欢迎您运行测试,但基本上每个请求都会解释 php(显然 memache 确实启动了),而玉视图应该完成缓存在内存中。

【讨论】:

【参考方案4】:

首先,我知道这已经很老了,但我想对我的基准进行元标记,以帮助其他寻求 Jade vs 决策的人。我最近添加了一个基准来比较两者,因为我在挑选模板引擎时遇到了困难。我选择 Twig 是因为我已经用过它,而且从未用过 Jade。我确实喜欢 Jade 的简单性,并且有助于启动“快速 Web 应用程序”,但是我已经编写 HTML 和 CSS 超过 15 年,看到这些标记让我微笑。

Express - Jade vs Twig Benchmarks:

【讨论】:

以上是关于PHP 与 Node.js - 在 Node.js 中使用 Jade 的 HTML 渲染速度会变慢吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Node.js 与 PHP 有啥优势 [重复]

将 PHP 会话与 Vue/Node.js 集成

PHP Socket 服务器与 node.js:网络聊天

NODE JS 与 PHP 文件操作函数对比

node.js 和 PHP 之间如何通信?

初学node.js