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

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. 以上都是。
加入收藏 新浪微博 分享到微信 ❤赞 2586 次点击 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—源自武汉的高端交流分享社区
相关主题
根据 GitHub 个人贡献图生成贪吃蛇游戏,有点意思
哪个ai可以结合新闻中的图片和视频帮忙生成指定尺寸的组合图片呀?
做了个世界有趣街景网站,一刷就上瘾
小程序备案要多久
你们现在写游戏,还用unity吗?
感觉chatgpt还是比deepseek和grok强很多
能纯手搓一个全流程神经网络程序,在本版什么水平?
AI还是欠火候
新上线的flux 站点
有没有大佬解下惑,现在大火的AI智能体到底是个啥?

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