社区所有版块导航
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 表现最差

Python入门到精通 • 6 天前 • 16 次点击  
下图展示了多种编程语言执行 10 亿1 Billion)次嵌套循环的性能对比。
图片

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

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

已关注

               关注

重播

关闭

观看更多

更多

    退出全屏

    切换到竖屏全屏退出全屏

    Python开发已关注

    分享视频

    ,时长00:12


    0/0

    00:00/00:12

     切换到横屏模式 

    继续播放

    进度条,百分之0

    播放

    00:00/

    00:12

    00:12

    全屏


     倍速播放中 

     0.5倍  0.75倍  1.0倍  1.5倍  2.0倍 

     超清  流畅 

     您的浏览器不支持 video 标签 

    继续观看

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

    观看更多

    转载

    ,

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

    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    [User504.5 ms, System2.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    [User505.6 ms, System2.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    [User504.6 ms, System3.1 ms]  Range (min … max):   512.4 ms … 516.3 ms    3 runs
    ...


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


    ../clean.sh


    (完)


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