首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >V8引擎将JavaScript编译为机器码。那么,为什么node.js不比C快呢?

V8引擎将JavaScript编译为机器码。那么,为什么node.js不比C快呢?
EN

Stack Overflow用户
提问于 2010-11-19 06:36:28
回答 5查看 4.5K关注 0票数 5

根据language benchmarks的说法,在regex- V8编程中,JavaScript V8比其他编程语言更快。那么,为什么node.js应用程序(如http服务器)的速度不如C应用程序(如Nginx、Lighttpd)呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-19 07:03:06

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

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

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

票数 33
EN

Stack Overflow用户

发布于 2010-11-19 06:40:13

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

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

必有的坏车类比:火腿三明治比保时捷美味多了。为什么从0到60的速度不快呢?

票数 11
EN

Stack Overflow用户

发布于 2010-11-19 14:18:54

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4220333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档