过早客
  • 首页
  • 节点
  • 成员
  • 广告投放
  • 登录
  • 注册

node.js快,到底什么是根本的原因?

IT技术 • kenzi • 发表于 10 年前 • 最后回复来自 andyhjq2000 • 10 年前

node.js快,到底什么是根本的原因?

  1. javascript里用callback,这样就 non-block i/o
  2. 用到了web server的os的multi-threading
  3. 用到了websocket,这是双向交流,tcp;比http更底层,也更轻,这样在internet上传输时更快
  4. 以上都是。
加入收藏 新浪微博 分享到微信 ❤赞 2679 次点击 0 人赞 0 人收藏

打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

共收到10条回复
tornado 10 年前 #1 赞 0

都不是。javascript的解释器做得快。python和ruby啥的,语言上没本质差别,慢就慢在解释器太烂。

kenzi 楼主 10 年前 #2 赞 0

这么说,javascript其实是非常优秀的语言了?

那用node.js做的大project,debug, test起来是不是比较烦人?

tracymcladdy 10 年前 #3 赞 0

当Node.js开发出了各种JS的开发框架,并制定了JS2EE标准,正式成为全栈语言时,就能打败java,python和ruby了

lee 10 年前 #4 赞 0

multi-threading这个是很慢的。

类似的,lock很慢,所以有时候需要spin lock。

多线程在特定场合是不如node这种event driven的单线程,因为免去了线程切换的代价。

类似的,haskell里面的lightweight threads才1000多字节,之间的切换也很快。

这些都是high concurrency成为可能的原因。

tornado 10 年前 #5 赞 0

js当然是很好的语言。特别是新的es6出来后。

typescript上台后,开发效率秒杀java/scala, 速度和可验证性秒杀python ruby, 前后端通吃。

es7会出object.observe 和多线程(这个真心不看好,步子太大怕扯到蛋)

andyhjq2000 10 年前 #6 赞 0

这个没有绝对好坏,同样是web server,基于多线程的Apache还是比基于event的Nginx流行很多,同样Java的Tomcat也比Netty流行很多。实际都是取决于case by case,任何问题都没有什么都好的银弹。

kenzi 楼主 10 年前 #7 赞 0

javascript里没有类似c#的view model之类的东西吗?还有dto之类的?那linq, ado.net更是没有了。这到底是比c#好呢还是?

wanper 10 年前 #8 赞 0

做复杂逻辑JS差得远呢,根本不是C#, JAVA, SCALA之类的对手。

tornado 10 年前 #9 赞 0

看是什么事情,一般node也就是把数据从一个地方搬运到另外一个地方。基本只处理异步I/O。这种情况下动几步就进入native C/C++实现的函数里面去了。当然速度快了。

另外,Google V8是基于C++,没C++ node玩不转。

V8是JIT。也就是能编译成机器码再运行。即使如此,这种dynamic typed JIT性能肯定不如JVM。其实,同样是dynamic typed,V8都不一定干得过LuaJIT。

其实我个人更喜欢Lua多一些。Lua可能是最简单的语言了。我觉得任何人都很难会不喜欢Lua。

andyhjq2000 10 年前 #10 赞 0

Node快还是在io,跟复杂逻辑没啥关系。也就是说,写复杂逻辑时它和其他语言没什么优势,当然我也不觉得它有啥劣势。还是在你的喜好上。

请绑定手机号后,再发言,点击此处
Guozaoke.com—源自武汉的高端交流分享社区
相关主题
iOS 过早客没有数据,大佬们求教!
GPT-5
寻有K12教育行业软件开发经验的同学合作
你们都用哪些AI工具,求分享下~
过早客flutter版来了
亲测,鸿蒙开发奖励到手了
感觉gemini已经是一骑绝尘
分享一个拥有很多好看壁纸的插件
作为后端开发工程师,你们有中途转向机器学习/深度学习的吗?
写了个过早客的暗色插件,个人感觉很好用嘿嘿

过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号