Golang, Swift, Nodejs 和 Rust 性能对比
原文在:http://771dian.com/cb/topic/4yi18ADKg
先说结论:
一般程序:
rust
最快,比golang
快一丁点;比nodejs
快2倍;比swift
快3倍。。。
深度递归:形式完全逆转,
swift
最快,比rust
快一倍;比golang
快2.3倍;比nodejs
快3倍
综合来看,rust算最快,但它的生态系统很弱,不用考虑。我们给firefox做过扩展,深刻体会其团队思路之坑爹,绝对不会跟随他们的产品。
普通:
递归:
来源: https://grigio.org/go-vs-node-vs-rust-vs-swift/
语法便利性
对于跨平台语言,除了性能,语法的便利也很重要,会严重影响开发效率。除了rust外,下面几乎是共识:
nodejs(es6或es7语法)最方便;swift接近,但略微差一些;和前两者比,golang语法则不算方便。
nodejs 无需强类型,原生支持json,支持类和原生并发。实在太轻松。想要强类型,有typescript可选。不想要,可以不用。
golang和swift,都不够方便。
比如,处理json,都需要依赖库把json解析为强类型结构。golang是自带库,swift是第三方库(国人作品)。使用库之后,golang和swift就差不多了。
golang不支持类和泛型,结构体模拟类不够简洁。swift支持类。
swift语法接近 typescript 版本的Javascript,转移很便利
golang语法自成一派,不过上手也比较简单就是了。
综合结论
一般而言,如果不为了追求极致性能,用nodejs就很好,因为除了性能,开发效率也很非常非常重要。nodejs开发明显轻松。
nodejs不能多核的问题,可运行多实例,一个实例用一核。这样就实现:开发效率+运行效率最大化。
不想这么做,就选择golang,毕竟深度递归并不常用。但如果大量操作json,还是用nodejs最轻松。
swift虽然开源跨平台了,但从性能、语法便利上看,除特殊情况外,不足以代替golang+nodejs。
rust虽然性能指标不错,但从我们做firefox扩展的体验来看,团队思路离大众需求,其实非常遥远,特别坑爹。我们是绝对不会跟随这个团队的任何产品的,也不推荐大家跳进去。
转载于:https://my.oschina.net/u/2391672/blog/612502
- 点赞
- 收藏
- 分享
- 文章举报
- Golang, Swift, Nodejs 和 Rust 性能对比
- 2017年的golang、python、php、c++、c、java、Nodejs性能对比
- c、rust、golang、swift性能比较
- 2017年的golang、python、php、c++、c、java、Nodejs性能对比[续]
- golang、python、php、c++、c、java、Nodejs性能对比
- nodejs与golang的http模块性能对比
- 2017年的golang、python、php、c++、c、java、Nodejs性能对比(golang python php c++ java Nodejs Performance)
- Go_18: Golang 中三种读取文件发放性能对比
- golang与node.js的http模块性能对比测试(go1)
- Swift 和Objective-C 性能对比
- GO,NODEJS,.NetCore性能对比
- ASP.NET Core 性能对比评测(ASP.NET,Python,Java,NodeJS)
- workerman和nodejs自测性能对比
- workerman和nodejs自测性能对比
- python、nodejs和java性能对比
- 为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是直接编译成机器码?
- golang和java的http性能对比
- 对比Swift和GlusterFS的读写性能
- Golang 字符串拼装方式性能对比
- Golang 中三种读取文件发放性能对比