前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >10 亿次嵌套循环,TOP10编程语言性能大对比,Python 表现居然"最差"!

10 亿次嵌套循环,TOP10编程语言性能大对比,Python 表现居然"最差"!

作者头像
测试开发技术
发布2025-01-13 12:32:44
发布2025-01-13 12:32:44
32400
代码可运行
举报
文章被收录于专栏:测试开发技术测试开发技术
运行总次数:0
代码可运行

下图展示了多种编程语言执行 10 亿(1 Billion)次嵌套循环的性能对比。

从上图可以看出 C 和 Rust 并列第一,耗时 0.50 秒,性能最好,Python 表现最差,耗时 74.42 秒。

看看以下视频,Python 走的跟蜗牛一样:

性能上,编译型语言(如 C、Rust 和 Java)由于强大的编译器优化,明显优于解释型语言(如 Python 和 Ruby)。

斐波那契数的计算表现最好的依然是 C 和 Rust,运行时间分别为 0.40 秒 和 0.41 秒。

Python 与 R 语言垫底,运行时间分别为 29.00 秒 和 68.96 秒。

所以,如果我们项目需要处理大量计算,C、Rust 和 Java 等语言是更好的选择。

Python、PHP 和 Ruby 适合开发效率优先的场景,但在计算密集型任务中表现相对较弱。

以上测试是在一台 M3 MacBook Pro(16GB RAM) 上通过 /usr/bin/time 命令获取的时间。

每种语言都接收输入值 40。

  • Clang 版本:Apple clang version 16.0.0 (clang-1600.0.26.4)
  • R 版本:Rscript (R) version 4.4.2 (2024-10-31)
  • Kotlin 版本:kotlinc-jvm 2.0.21 (JRE 23.0.1)
  • Java 版本:javac 23.0.1
  • Rust 版本:cargo 1.82.0
  • Node.js 版本:v22.11.0
  • Python 版本:3.9.6
  • Ruby 版本:3.3.5
  • PHP 版本:8.3.13
  • Dart 版本:3.5.4
  • Bun 版本:1.1.34
  • Deno 版本:2.0.6
  • Go 版本:1.21.2
  • PyPy 版本:7.3.17

更多语言及更新版本的执行时间

从下图可以看出,Zig、Rust 和 C 语言在执行 10 亿(1 Billion)次嵌套循环表现最佳,均在0.5秒左右。

Python 使用 3.13 版本的时间显著提升至 31.589 秒。

R 语言所需时间最长,达到了 72.643 。

以上测试是在一台 M3 MacBook Pro(16GB RAM) 上通过 hyperfine 获取的执行时间。

每个程序的输入值均为40。

  • Swift 版本:swift-driver 版本:1.115,Apple Swift 版本 6.0.2(swiftlang-6.0.2.1.2 clang-1600.0.26.4)
  • Clang 版本:Apple clang 版本 16.0.0(clang-1600.0.26.4)
  • Fortran 版本:GNU Fortran(Homebrew GCC 14.2.0_1)14.2.0
  • R 版本:Rscript(R)版本 4.4.2(2024-10-31)
  • Kotlin 版本:kotlinc-jvm 2.0.21(JRE 23.0.1)
  • MiniRuby(ruby yjit)版本:ruby 3.4.0dev
  • LuaJIT 版本:LuaJIT 2.1.1731601260
  • Common Lisp(SBCL)版本:2.4.11
  • Odin 版本:dev-2024-11:e6475fec4
  • Free Pascal 版本:3.2.2
  • Java 版本:javac 23.0.1
  • Rust 版本:cargo 1.82.0
  • Scala CLI 版本:1.5.4
  • Dotnet 版本:9.0.100
  • Clang++ 版本:16.0.0
  • Crystal 版本:1.14.0
  • Elixir 版本:1.17.3
  • Node 版本:v22.11.0
  • Python 版本:3.13
  • Ruby 版本:3.3.5
  • PHP 版本:8.3.13
  • Dart 版本:3.5.4
  • Bun 版本:1.1.34
  • Deno 版本:2.0.6
  • PyPy 版本:7.3.17
  • Zig 版本:0.13.0
  • Inko 版本:0.17.1
  • Go 版本:1.21.2
  • Nim 版本:2.2.0
  • Scala 版本:3.5.2

源码测试

测试源代码:https://github.com/bddicken/languages

在线地址 1:https://benjdd.com/languages/

在线地址 2:https://benjdd.com/languages2/

我们可以克隆这个项目到本机测试:

代码语言:javascript
代码运行次数:0
复制
git clone https://github.com/bddicken/languages

进入目标基准测试目录:

代码语言:javascript
代码运行次数:0
复制
cd loops

运行以下脚本编译:

代码语言:javascript
代码运行次数:0
复制
../compile.sh

然后执行以下脚本:

代码语言:javascript
代码运行次数:0
复制
../run.sh

你应该会看到类似如下的输出:

代码语言:javascript
代码运行次数:0
复制
$ ../run.sh

Benchmarking Zig
Benchmark 1: ./zig/code 40
  Time (mean ± σ):     513.9 ms ±   2.9 ms    [User: 504.5 ms, System: 2.6 ms]
  Range (min … max):   510.6 ms … 516.2 ms    3 runs


Benchmarking C
Benchmark 1: ./c/code 40
  Time (mean ± σ):     514.0 ms ±   1.1 ms    [User: 505.6 ms, System: 2.8 ms]
  Range (min … max):   513.2 ms … 515.2 ms    3 runs


Benchmarking Rust
Benchmark 1: ./rust/target/release/code 40
  Time (mean ± σ):     514.1 ms ±   2.0 ms    [User: 504.6 ms, System: 3.1 ms]
  Range (min … max):   512.4 ms … 516.3 ms    3 runs

...

执行完成后,使用以下命令清理:

代码语言:javascript
代码运行次数:0
复制
../clean.sh
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 斐波那契数的计算表现最好的依然是 C 和 Rust,运行时间分别为 0.40 秒 和 0.41 秒。
  • Python 与 R 语言垫底,运行时间分别为 29.00 秒 和 68.96 秒。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档