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 usewith
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 渲染速度会变慢吗?的主要内容,如果未能解决你的问题,请参考以下文章