跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 来自 debian 团队的各大语言性能测试数据
未分類
5 2 月 2021

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

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

資深大佬 : Rwing 10

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

但是原始数据看起来不是很直观,我把它汇总做了个柱状图,结果如下. 来自 debian 团队的各大语言性能测试数据

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

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

原始数据来自 debian

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

大佬有話說 (100)

  • 資深大佬 : beyondex

    C# 猛,基本都在前 3~4 名普遍比 go 快(内存占用则大得多)。

  • 資深大佬 : wdwwtzy

    rust 这么屌吗?

  • 資深大佬 : liprais

    语言圣战预警,无关人员迅速撤离!

  • 資深大佬 : Austaras

    rust 天下第一!

  • 資深大佬 : scr

    node 这么能打的吗, 比第一名只差 4 倍…

  • 資深大佬 : Leviathann

    c# 快于 java 快于 go
    可以开战了

  • 資深大佬 : baiyi

    震天的战鼓再次被敲响,有请各语言选手入场

  • 資深大佬 : baiyi

    为什么 rust 这么能打,性能高,内存还低

  • 資深大佬 : qwerthhusn

    我走上路,来个能打的

  • 資深大佬 : 0clickjacking0

    不能光看直接比较吧,感觉不是很可靠,就像 1 老哥说的,要看内存占比

  • 資深大佬 : 0clickjacking0

    @0clickjacking0 光看时间,少打了字

  • 資深大佬 : chenqh

    如果 py 有 php 那么快就好了

  • 資深大佬 : chenqh

    能有 node 那么快就好了

  • 資深大佬 : neoblackcap

    @scr node 跟 Java 都是一样有强大 JIT 的语言,性能高没啥奇怪

  • 資深大佬 : janxin

    什么版本的 Ruby ?看起来是没 jit 支持的版本,要不然应该是 Python 垫底

  • 資深大佬 : rogwan

    一直知道 py 怂,没想到这么怂

  • 資深大佬 : wdwwtzy

    @Leviathann 这个应该是共识了吧…开不了战….

  • 資深大佬 : rogwan

    erlang 不是很强吗,怎么也这么弱?

  • 資深大佬 : oneonesv

    @janxin
    64-bit Ubuntu quad core
    ruby 3.0.0preview1 (2020-09-25 master 0096d2b895) [x86_64-linux]
    –jit

  • 資深大佬 : Evilk

    PHP-8 开启 JIT,还是这么慢吗?

  • 資深大佬 : Mohanson

    看了下他们用的代码,mandelbrot,第一名的 c++ 代码用了向量指令加多线程,第 3 名 rust 多线程,第 8 的 c 只用了向量指令,再往后的很多老实人,内置基础数据单线程实现。没太大说服力,所以同一梯队内的语言(c,cpp,rust 这种算同一梯队)性能全看写代码的人愿不愿意花时间去扣

  • 資深大佬 : liuxu

    rust 天下无敌!

  • 資深大佬 : wtks1

    c#很符合用户感知…

  • 資深大佬 : Jirajine

    @Mohanson #21 理论上来说全都应该使用语言内置基础类型、最简实现才能实际地体现出各语言的性能。

  • 資深大佬 : love

    我大 JS 果然是脚本语言一哥的存在

  • 資深大佬 : nutting

    想学这个 rust,未来能取代 java 吗

  • 資深大佬 : wms

    所有 C 不是第一的测试都是忽悠人的, 不管他是谁发布的

  • 資深大佬 : kikyous

    node 确实能打

  • 資深大佬 : westoy

    @rogwan

    erlang 强在 SMP, 还有整套 OTP 处理框架带来的高可用和高容错, 性能没人吹的啊

  • 資深大佬 : Jirajine

    @wms 你这样说就过于绝对了,且不说工程上的复杂度导致 c 难以一直使用最优化的实现。一个最简单的例子,c 的 null terminated 字符串。

  • 資深大佬 : hongweiliuruige

    node 厉害了

  • 資深大佬 : CommandZi

    为什么你这个图表没有 Swift ?

  • 資深大佬 : Flymachine

    @nutting rust 是想取代 C++的,他们觉得 C++太复杂了,也不够安全,所以设计了 rust,“更安全的 C++”。然而现实是 C++转 rust 的人少,python 转 rust 的人反而更多。

  • 資深大佬 : henryhu

    ruby 3 据说快了 3 倍,不知道这个测试用的 ruby 是哪个版本

  • 資深大佬 : felixin

    haskell 这种没背景的语言竟然和 go 一样快?

    很感兴趣 c#换成 f#会怎么样,都是.net 平台性能应该接近

    函数式编程是未来的趋势

  • 資深大佬 : wms

    @Jirajine C string 除了 length 比较低效,其他有什么地方低效了? 并且 length 很多情况也不必其他语言的 string 低效, 比如字面量的时候可以用 sizeof

  • 資深大佬 : longaiwp

    语言圣战即将展开,无关人等迅速撤离!

  • 資深大佬 : whileFalse

    感想如下:
    1. Rust 好快,竟然比 C 快
    2. C#好快,比其他的带 VM 的快辣么多
    3. Node 好快,比其他的解释型快辣么多
    4. Go 好慢,作为纯编译型连带 VM 的都打不过
    5. Python 好慢。

  • 資深大佬 : hws8033856

    C#该不会是编译成 native 了吧?这是作弊啊

  • 資深大佬 : wdwwtzy

    @hws8033856
    应该不是,哈哈

    .NET SDK 5.0.100
    Host Version: 5.0.0; Commit: cf258a14b7
    <ServerGarbageCollection>true

  • 資深大佬 : no1xsyzy

    @Flymachine 其实是 Python 盯着半天 C++ 了,有个更舒服的选择自然转了。(我快了

  • 資深大佬 : no1xsyzy

    @felixin Haskell 的背景是偏学术界的……
    哲学系教授玩 Haskell 比我溜( pandoc 太好用了

  • 資深大佬 : zsj950618

    标题党了,这和 Debian 没有任何关系,任何人都可以在 pages.debian.net 上新建网页,这是 Debian 的 gitlab 对应的 pages 网址。你总不能说我在 xxx.github.io 上发布了个东西,就说是 GitHub 团队发布的吧。

  • 資深大佬 : favourstreet

    @Mohanson 说得在理啊,果然没有什么问题是 SHOW ME CODE 解决不了的。话说只要愿意去扣,c/cpp/rust 这仨甚至可以人为给它们随便安排名次

  • 資深大佬 : Flymachine

    @no1xsyzy 哈哈,我们做 C++的其实也苦 C++久矣。所以 Rust 一出我就关注了,但实在是项目不好搬。主要是 Rust 和 C++主要区别就在线程安全性和节省心智精力上,对已有项目提升不大,迁移后可能问题更多。也是头大,只能慢慢先在新项目上试试。其实 GO 也不错,也是 Google 觉得 C++太复杂搞出来的。

  • 資深大佬 : anthongy

    所有 C 不是第一的测试都是忽悠人的, 不管他是谁发布的

  • 資深大佬 : zjsxwc

    pypy 性能可以和 c 媲美吧,应该没有测 pypy 版的 python

  • 資深大佬 : fiveelementgid

    辣鸡 C#,Go 语言(。ノω\。)并发才是最快的!
    什么?有实验数据?
    我不听我不听( ≧Д≦),肯定是高并发的 go 快

  • 資深大佬 : lewis89

    @Flymachine #45 用 C++的场景 基本上跟 GC 无缘了吧,你能忍受 golang 的 GC 停顿,那为什么不转 Java,Java jit 之后吊打 golang,而且又是企业级的 GC

  • 資深大佬 : rogwan

    @westoy #29 印象里 WhatsApp 创始人吹过,说 WhatsApp 性能强悍,就是因为是用 erlang 写的

  • 資深大佬 : shuax

    C/C++ yyds

  • 資深大佬 : williamherry

    可怜的 Ruby

  • 資深大佬 : laike9m

    说真的,谈性能还是要看场景

  • 資深大佬 : tigerZhang

    rust 有点出乎意料

  • 資深大佬 : BBCCBB

    @rogwan 他说的这个性能强应该是 io 密集型场景下, whatsapp 这种基本是 io 密集型的应用, 用 erlang 跑, actor 模型很合适. 异步 io 相比同步 io 效率提升非常明显. 很多推送系统也是在用 erlang. 但要单核跑算法这种, 性能还是不够快的.

    就像 python 有了 asyncio, 在 io 密集型应用下也能实现高并发.

  • 資深大佬 : Jirajine

    @wms 取子串、取后缀。
    再就是由于其糟糕的依赖管理,某些算法 /数据类型在其他语言你可以轻易导入其他人很好的实现,在 c 里你可能就懒得用了。
    当然我不是说 c 不行,我只是说 c 并不是**永远**最快的(尤其是 real world c programs )。

  • 資深大佬 : gamexg

    rust 居然比 c 还牛,
    go 和 rust 的差距很大啊

  • 資深大佬 : wms

    @Jirajine 人这测试性能, 你说算法数据结构实现了,没在 C 里用, 这不是纯杠吗?
    取子串、取后缀 没看出 C 比其他语言哪里慢了.

  • 資深大佬 : Kilerd

    LONG LIVE THE RUST 。

    go 比 java 还慢是我没想到的。

    python 比 ruby 还快也是我没想到的。

    Python 牛逼就完事了。

  • 資深大佬 : ichanne

    @CommandZi 满足你,https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/swift-rust.html

  • 資深大佬 : SuperMild

    Go 果然很能打啊,速度仅比 Java 慢一点点,内存低好多。C# 和 Java 的内存占用太可怕了。

  • 資深大佬 : zealinux

    Elixir 会比 Erlang 快多少?

  • 資深大佬 : Jirajine

    @wms 取子串需要添加 null byte,取后缀需要先 count 。
    语言的标准实现、库、生态当然会影响你写出程序的性能。就算你强行替换成最优实现,也只是理论上可行。比如标准的 null terminated 字符串性能慢,你改成 fat pointer 的实现,那你调用别人的库 /别人调用你的库都需要额外转换,性能还是不行。

  • 資深大佬 : AndyAO

    @nutting #26
    Rust 和 Java 不是一类东西,Rust 是 C 的继任者,主要用于高性能,低延迟,对硬件精确控制的情景.
    包括而不限于浏览器内核,操作系统.

  • 資深大佬 : AndyAO

    Ruby 的优势不在于性能,而在于语法.
    所以完全可以跑在其他平台以提高性能,例如 JRuby,相信有 JVM 加持,性能应该会提升很多.

  • 資深大佬 : AndyAO

    对 C#的性能表示满意,最近正准备开始学 C#.

  • 資深大佬 : no1xsyzy

    @Flymachine 主要因为 Python 抛弃成本比较小。
    go vs rust 也是经典了。go 败在 gc,rust 败在生命周期控制麻烦。

  • 資深大佬 : lc1450

    @anthongy #46 github 有个 ripgrep rust 写的,比 grep 快,当时我也挺震惊的

  • 資深大佬 : lysS

    @Kilerd
    @whileFalse
    主统计只是时间,原始数据 go 比 java 快的项更多,而且内存一般少一半
    https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/go.html

  • 資深大佬 : starcraft

    这就尴尬了。搞办公室政治 裁 Java 转 go 快圆不下去了。java 真就 yyds 。

  • 資深大佬 : wangkun025

    Ruby 哭晕在厕所。

  • 資深大佬 : GiantHard

    @felixin 应该会慢很多,因为 F# 默认用的 immutable 数据结构

  • 資深大佬 : back0893

    php 居然这么快..

  • 資深大佬 : jessun1990

    @scr 哈哈,上班看到这句话笑出声。

  • 資深大佬 : daysv

    node+rust 挺好

  • 資深大佬 : FightPig

    rust 牛不意外 ,不过这个 ruby 应该没用 Ruby 3 Fiber 的,要不 py 是垫底的

  • 資深大佬 : Cbdy

    Go 居然比 Java 都慢,.NET 要崛起了

  • 資深大佬 : sampeng

    有啥意义? 500ms 以下的在 99%得场景下是够用了的。

  • 資深大佬 : wjwwq

    看了下原始数据的链接,听良心的,各种语言都有,代码也放上去了

  • 資深大佬 : felixin

    @GiantHard 找了一下数据大吃一惊

    https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/fsharpcore-java.html

  • 資深大佬 : neoblackcap

    @rogwan 是能支持大规模的用户,以及扩展好。whatsapp 没记错好像是 yahoo 出来的人搞的,复用以前的经验罢了

  • 資深大佬 : germain

    和环境编译时间成反比

  • 資深大佬 : CEBBCAT

    有没有人把编译速度也加入到横评之中?

  • 資深大佬 : 12101111

    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

    @12101111 https://blog.pyston.org/2020/10/28/pyston-v2-20-faster-python/,就这?

  • 資深大佬 : ryd994

    @Jirajine 你可以自己实现啊。说 C 难用我接受。说 C 慢这是不可能的。

  • 資深大佬 : crclz

    即使 C#比 go 慢 20 倍,我也愿意在开发者使用 C#。因为 go 的语言特性美其名曰“简洁”,实际就是缺胳膊少腿。

  • 資深大佬 : hobochen

    @12101111 好像 STL 不是那么回事儿

  • 資深大佬 : hatsuyuki

    @Flymachine 感觉 Ruby 转 Rust 的人更多

  • 資深大佬 : yoohohoho

    看完两个疑问,node 为啥这么快? golang 为啥这么慢?

  • 資深大佬 : hikari2

    @CommandZi 他这个测试平台应该是在 WIN PC 上测试的

  • 資深大佬 : cmdOptionKana

    @yoohohoho golang 有 gc 有 runtime,本来就不是 c/c++ 那个级别的,只能和 c#, java 比,看主附言 “在 10 项测试中 go 胜出了 7 项,但是在输的其中一项里落后 java 一倍还多,导致整体落后了”,因此可以认为 c#, java, golang 三者大体上差别不算大,属第二梯队,比第三梯队的 php, python 快一大截。

  • 資深大佬 : Myprajna

    pascal ?没看错吧,是中学微机课学的那个 pascal 吗?

  • 資深大佬 : SuperMild

    @Myprajna 没想到性能这么优秀,没有大厂支持真是太可惜了。

  • 資深大佬 : h82258652

    貌似值得投入一下去学 rust 了

  • 資深大佬 : missdeer

    没想到 Go 慢这么多,还以为这些年下来已经优化得很好了呢
    除掉 C/C++和 Go,剩下的也就 C#值得用了

  • 資深大佬 : Flymachine

    @lewis89 你遗漏了 QT 场景,不是所有的 C++项目都要求压榨性能到极限。遇到不允许使用中间语言的场景,go 这种带 GC 的语言挺不错的。
    当然,JAVA 和 C#现在也可编译成本地机器码了。

  • 資深大佬 : Flymachine

    @no1xsyzy 我觉得他们的侧重点不一样吧。go 天生就是为了高并发,做高性能网络服务。rust 野心大一些,想替代 C++,场景更底层一些。rust 还有 rust-embedded 分支,搞 Cortex-M 的嵌入式开发尝试。

  • 資深大佬 : lewis89

    @Flymachine #97 pyQT 足矣,另外 QT 的 binder 这么多 ,以 C++的上手难度 跟成本,如果不是为了极高的实时性以及性能压榨,完全没有必要上 C++

  • 資深大佬 : MrCard

    node 好强呀,出乎意料地快。但怎么就是取代不了 python 呢?一样的动态语言,但人工智能都是用 python 来写

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具