V8引擎将JavaScript编译为机器代码。那么,为什么node.js不是';t比C快?

V8引擎将JavaScript编译为机器代码。那么,为什么node.js不是';t比C快?,javascript,nginx,node.js,lighttpd,v8,Javascript,Nginx,Node.js,Lighttpd,V8,据介绍,JavaScript V8在regex dna程序中比其他编程语言更快。那么,为什么node.js应用程序(即http服务器)不比C应用程序(即Nginx、Lighttpd)快呢?因为服务http请求与regex dna是不同的问题 在一项任务中A比B快的事实并不能说明从其他任务中可以得到什么 强制性的坏汽车类比:火腿三明治比保时捷好吃得多。为什么从0到60不更快?因为V8应用程序是javascript应用程序。即使javascript最终被编译成机器代码,运行时特征也是不同的 例如,如

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

因为服务http请求与regex dna是不同的问题

在一项任务中A比B快的事实并不能说明从其他任务中可以得到什么


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

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

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


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

For one C基本上是计算速度的基准语言。现在的编译器非常优秀,能够产生非常高效的机器代码。这意味着性能的上限是使用C可以得到的

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

根据他的说法,JavaScript V8在二叉树程序中比GCC快而不是

根据语言基准测试,JavaScript V8在k-nucleode程序中比GCC快而不是

根据语言基准测试,JavaScriptV8在n-body程序中比GCC快而不是

根据语言基准测试,JavaScript V8在Spectrum norm程序中比GCC快而不是

根据语言基准测试,JavaScript V8在fasta程序中比GCC快而不是

根据语言基准测试,JavaScriptV8在反向补码程序中的速度比GCC快


根据语言基准测试,JavaScriptV8在pidigits程序中的速度不比GCC快。

在该基准测试中,有15个不同的程序,只有一个dna正则表达式基准测试可以看到JavaScriptV8更快。在其他基准测试中,JavaScript的性能要低得多。你可以在第一个选项中选择程序,看看。

为什么apache比lighttpd快,它们都是用C编程的?这是另一个问题@Andrekr你知道C也被编译成机器码,不是吗?根据数据,法拉利在绕赛道行驶时比许多其他车辆都快,那么,为什么拉犁时它的速度不比拖拉机快呢?@PolatAlemdar~请理解,V8和其他解释语言的运行时通常是针对使用正则表达式进行优化的,因为这是这些语言的主要用例之一。Web服务器的主要用例不是处理正则表达式。因此,虽然V8引擎可能针对正则表达式进行了优化,但这与它处理IO套接字或IO文件请求的能力无关。解析HTTP请求和正则表达式不能像语义示例中那样无关。不管怎样,你会开三明治还是吃保时捷来编写HTTP服务器的代码?@PolatAlemdar~这里有语言障碍。这些都是英语习语。-1对于糟糕的汽车类比,基准游戏网站Polat Alemdar指向自己显示了另外六个不同的任务,@Polat Alemdar-你问“那么,为什么node.js应用程序(即http服务器)不比C应用程序快?”答案是,您没有理由认为它们应该比C应用程序更快。您断章取义地使用了一个度量值,而忽略了其他7个度量值。