文档章节

Golang, Swift, Nodejs 和 Rust 性能对比

点空
 点空
发布于 2016/02/01 13:08
字数 592
阅读 419
收藏 3


原文在: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扩展的体验来看,团队思路离大众需求,其实非常遥远,特别坑爹。我们是绝对不会跟随这个团队的任何产品的,也不推荐大家跳进去。


© 著作权归作者所有

共有 人打赏支持
点空
粉丝 3
博文 7
码字总数 4463
作品 0
golang vs dlang vs nodejs vs php 性能对比较量

这是我本机开的一个单核1G内存的Hyper-V虚拟机,首先我们使用的语言和框架版本给大家看一下: root@kerisy:/home/zoujiaqing# go versiongo version go1.5.1 linux/amd64root@kerisy:/home/...

冰力
2015/11/13
0
1
开源 IP 地址定位库 ip2region 1.7 发布,新增 rust 支持

ip2region 是准确率 99.9% 的 IP 地址定位库,0.0x毫秒级查询,数据库文件大小只有 3.3M,提供了 Java、PHP、C、Python、Node.js、Golang、C#、Rust的查询绑定和 Binary、B树、内存三种查询算...

狮子的魂
07/31
0
12
Deno 并不是下一代 Node.js

这几天前端圈最火的事件莫过于 ry(Ryan Dahl) 的新项目 deno 了,很多 IT 新闻和媒体都用了标题:“下一代 Node.js”。这周末读了一遍 deno 的源码,特意写了这篇文章。长文预警(5000字,1...

justjavac
06/04
0
0
Deno下一代Nodejs?Deno初体验

前言 Ryan Dahl之父发布了新的项目Deno,很多IT媒体都使用了标题“下一代Nodejs”,首先我们看一下Deno的特性: 1.支持typescript (nodejs目前也支持)。 2.无package.json,无npm,不兼容nod...

peiyu1988
08/12
0
0
三大角度 PK ,Go 语言和 Node.js 谁胜谁负?

Node.js 与 Go 语言一直是互联网大战中的主战场,虽说按照普通的各项指标对比,那么这场战争可能在很长时间内都难分胜负,但我们还是决定尝试对这二者做一些研究,并力求做出更准确的判断。 ...

王练
07/01
0
46

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周三乱弹 —— 我居然在 osc 里追剧

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @舆情风控小组 :分享王菲的单曲《笑忘书》 《笑忘书》- 王菲 手机党少年们想听歌,请使劲儿戳(这里) @艾尔库鲁斯:如果给大家一个选择的机...

小小编辑
45分钟前
70
6
rabbitMq的客户端使用笔记

1、channel声明队列的queueDeclare方法的参数解析 durable: 是否持久化, 队列的声明默认是存放到内存中的,如果rabbitmq重启会丢失,如果想重启之后还存在就要使队列持久化,保存到Erlang自...

DemonsI
53分钟前
0
0
“全新” 编程语言 Julia开箱体验

本文共 851字,阅读大约需要 3分钟 ! 概 述 Julia 是一个 “全新”的高性能动态编程语言,前两天迎来了其 1.0 正式版的重大更新。Julia集 Python、C、R、Ruby 之所长,感觉就像一种脚本语言...

CodeSheep
今天
12
0
软件自动化测试初学者忠告

题外话 测试入门 很多受过高等教育的大学生经常问要不要去报测试培训班来入门测试。 答案是否。 高等教育的合格毕业生要具备自学能力,如果你不具备自学能力,要好好地反省一下,为什么自己受...

python测试开发人工智能安全
今天
5
0
java并发备忘

不安全的“先检查后执行”,代码形式如下: if(条件满足){ //这里容易出现线程安全问题//doSomething}else{//doOther} 读取-修改-写入 原子操作:使用CAS技术,即首先从V中读取...

Funcy1122
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部