来自 debian 团队的各大语言性能测试数据

2021-01-26 14:18:09 +08:00
 Rwing

debian 团队对每一个语言进行了 10 种算法的测试,结果包括了耗时,内存等等数据,并且基本上各语言都是最新版.

但是原始数据看起来不是很直观,我把它汇总做了个柱状图,结果如下.

更多子项的柱状图数据在这里

https://github.com/Rwing/debian-benchmarks-game-visualization

原始数据来自 debian

https://benchmarksgame-team.pages.debian.net/benchmarksgame/

12549 次点击
所在节点    Debian
119 条回复
neoblackcap
2021-01-26 22:33:58 +08:00
@rogwan 是能支持大规模的用户,以及扩展好。whatsapp 没记错好像是 yahoo 出来的人搞的,复用以前的经验罢了
germain
2021-01-26 22:53:20 +08:00
和环境编译时间成反比
CEBBCAT
2021-01-27 00:38:50 +08:00
有没有人把编译速度也加入到横评之中?
12101111
2021-01-27 01:25:31 +08:00
rust/c/c++后端都可以是 llvm,(现在 rust 也有一个 gcc 的后端了,只是处于初级阶段,但是有公司赞助,应该不会弃坑)性能差距就是

1. 标准库. 这一点 C 垫底,rust 只有一个官方的标准库,个人认为代码质量很高,可读性很强,但是一些算法存在优化空间。c++有 3 个主流的标准库( STL )( gcc 的 libstdc++, llvm 的 libc++ 还有 ms 的 vc++),充斥着大写字母,下划线和模板,可读性很差,几乎没人愿意看这玩意。
2. 编译器优化。理论上 rust 因为编译期信息更多,优化会更好,但是仍有一些因 bug 导致较慢。c/c++的优化已经很成熟了。
3. 代码的实现。rust > c++ > c 当然想要对着编译器和 perf 写代码,这三个都可以是最快的,大不了上 intrinsics 和 asm

go 的编译速度很快,但 go 编译器的优化并不充分。

C#的编译器 /运行时是.NET 5.0, 单就 C# 7.0 的 Span<T>就能让 Java 的性能再也不可能比得过 C#,Java 天生设计缺陷,为了根本不存在的向前兼容性不改这堆烂摊子,没治了。

Pascal 文物语言,再快也没人用。不知道为什么有几个项目内存占用那么低。

v8 优化到极致的虚拟机,吊打一众脚本语言没任何问题。

虽然 CPython 很拉垮,但是比 PHP 都拉垮就太丢人了。最近看到一个叫 Pyston 的解释器,号称性能更快且兼容 CPython,可惜最新版是闭源的。
lovestudykid
2021-01-27 06:29:56 +08:00
ryd994
2021-01-27 07:33:01 +08:00
@Jirajine 你可以自己实现啊。说 C 难用我接受。说 C 慢这是不可能的。
crclz
2021-01-27 08:29:04 +08:00
即使 C#比 go 慢 20 倍,我也愿意在开发者使用 C#。因为 go 的语言特性美其名曰“简洁”,实际就是缺胳膊少腿。
hobochen
2021-01-27 09:24:30 +08:00
@12101111 好像 STL 不是那么回事儿
hatsuyuki
2021-01-27 09:28:28 +08:00
@Flymachine 感觉 Ruby 转 Rust 的人更多
yoohohoho
2021-01-27 09:51:05 +08:00
看完两个疑问,node 为啥这么快? golang 为啥这么慢?
hikari2
2021-01-27 10:23:33 +08:00
@CommandZi 他这个测试平台应该是在 WIN PC 上测试的
cmdOptionKana
2021-01-27 10:42:42 +08:00
@yoohohoho golang 有 gc 有 runtime,本来就不是 c/c++ 那个级别的,只能和 c#, java 比,看楼主附言 “在 10 项测试中 go 胜出了 7 项,但是在输的其中一项里落后 java 一倍还多,导致整体落后了”,因此可以认为 c#, java, golang 三者大体上差别不算大,属第二梯队,比第三梯队的 php, python 快一大截。
Myprajna
2021-01-27 10:43:31 +08:00
pascal ?没看错吧,是中学微机课学的那个 pascal 吗?
SuperMild
2021-01-27 10:46:49 +08:00
@Myprajna 没想到性能这么优秀,没有大厂支持真是太可惜了。
h82258652
2021-01-27 10:53:01 +08:00
貌似值得投入一下去学 rust 了
missdeer
2021-01-27 11:16:55 +08:00
没想到 Go 慢这么多,还以为这些年下来已经优化得很好了呢
除掉 C/C++和 Go,剩下的也就 C#值得用了
Flymachine
2021-01-27 11:24:04 +08:00
@lewis89 你遗漏了 QT 场景,不是所有的 C++项目都要求压榨性能到极限。遇到不允许使用中间语言的场景,go 这种带 GC 的语言挺不错的。
当然,JAVA 和 C#现在也可编译成本地机器码了。
Flymachine
2021-01-27 11:30:46 +08:00
@no1xsyzy 我觉得他们的侧重点不一样吧。go 天生就是为了高并发,做高性能网络服务。rust 野心大一些,想替代 C++,场景更底层一些。rust 还有 rust-embedded 分支,搞 Cortex-M 的嵌入式开发尝试。
lewis89
2021-01-27 11:31:06 +08:00
@Flymachine #97 pyQT 足矣,另外 QT 的 binder 这么多 ,以 C++的上手难度 跟成本,如果不是为了极高的实时性以及性能压榨,完全没有必要上 C++
MrCard
2021-01-27 11:33:17 +08:00
node 好强呀,出乎意料地快。但怎么就是取代不了 python 呢?一样的动态语言,但人工智能都是用 python 来写

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/748518

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX