社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

10 亿次嵌套循环性能对比,Python 表现最差

IT服务圈儿 • 3 月前 • 256 次点击  
下图展示了多种编程语言执行 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/

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

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

git clone https://github.com/bddicken/languages

进入目标基准测试目录:

cd loops

运行以下脚本编译:

../compile.sh

然后执行以下脚本:

../run.sh

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

$ ../run.sh
Benchmarking ZigBenchmark 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 CBenchmark 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 RustBenchmark 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
...

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

../clean.sh

1、高德地图开奖了,什么水平?

2、小红书开出了满意的薪资,果断拿下!

3、DeepSeek 实现任务调度分片算法 , 灵性十足,远超预期 !

4、小红书抗住高并发的背后:Redis 7.0 性能必杀技之 I/O 多线程模型

5、国际排名最好的中国 Linux 发行版是 Deepin !

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/178866
 
256 次点击