5

根据语言基准,JavaScript V8 在 regex-dna 程序上比其他编程语言更快。那么,为什么 node.js 应用程序(即 http 服务器)并不比 C 应用程序(即 Nginx、Lighttpd)快?

4

5 回答 5

33

因为 V8 应用程序是 javascript 应用程序。即使 javascript 最终被编译为机器代码,运行时特性也是不同的。

例如,如果您在一个对象中调用一个函数,而该对象没有定义该函数,则运行时必须通过遍历原型层次结构来定位该函数,则该层次结构可以在程序的生命周期内随时更改。可以进行一些巧妙的优化,但仍然存在开销。

还有记忆模型。Javascript 被垃圾收集,GC 占用 cpu 周期。

于 2010-11-18T23:03:06.130 回答
11

因为服务 http 请求是一个不同于 regex-dna 的问题。

A 在一项任务上比 B 快的事实并不能说明对其他任务的期望。

强制性的坏车类比:火腿三明治比保时捷好吃得多。为什么从 0-60 不更快?

于 2010-11-18T22:40:12.980 回答
3

因为 C 本质上是计算速度的基准语言。这些天的编译器非常好,可以生成非常高效的机器代码。这意味着性能的上限是您可以使用 C 获得的。

在他关于 node.js 的一次演讲中,Ryan Dahl(创建者)node 和 C 一样快。(但是 GC 和其他东西确实会对性能产生影响,更不用说 V8 需要时间来适当地优化东西)

于 2010-11-19T06:18:54.043 回答
0

在该基准测试中,有 15 个不同的程序,只有一个 dna-regex 基准测试,您可以在其中看到 JavaScript V8 更快。在其他基准测试中,JavaScript 的性能要低得多。您可以在第一个选择中选择程序,看看这个

于 2014-03-17T12:57:16.827 回答
-5

根据语言基准,JavaScript V8在二叉树程序中并不比 GCC 快。

根据语言基准,JavaScript V8在 k-核苷酸程序上并不比 GCC 快。

根据语言基准,JavaScript V8 在 n-body 程序上并不比 GCC 快。

根据语言基准,JavaScript V8 在频谱规范程序上并不比 GCC 快。

根据语言基准,JavaScript V8 在 fasta 程序中并不比 GCC 快。

根据语言基准,JavaScript V8 在反向补码程序上并不比 GCC 快。

根据语言基准,JavaScript V8 在 pidigits 程序中并不比 GCC 快。

于 2010-11-19T17:18:14.743 回答