下图展示了多种编程语言执行 10 亿(1 Billion)次嵌套循环的性能对比。
从上图可以看出 C 和 Rust 并列第一,耗时 0.50 秒,性能最好,Python 表现最差,耗时 74.42 秒。
看看以下视频,Python 走的跟蜗牛一样:
性能上,编译型语言(如 C、Rust 和 Java)由于强大的编译器优化,明显优于解释型语言(如 Python 和 Ruby)。
所以,如果我们项目需要处理大量计算,C、Rust 和 Java 等语言是更好的选择。
Python、PHP 和 Ruby 适合开发效率优先的场景,但在计算密集型任务中表现相对较弱。
以上测试是在一台 M3 MacBook Pro(16GB RAM) 上通过 /usr/bin/time 命令获取的时间。
每种语言都接收输入值 40。
更多语言及更新版本的执行时间
从下图可以看出,Zig、Rust 和 C 语言在执行 10 亿(1 Billion)次嵌套循环表现最佳,均在0.5秒左右。
Python 使用 3.13 版本的时间显著提升至 31.589 秒。
R 语言所需时间最长,达到了 72.643 。
以上测试是在一台 M3 MacBook Pro(16GB RAM) 上通过 hyperfine 获取的执行时间。
每个程序的输入值均为40。
源码测试
测试源代码:https://github.com/bddicken/languages
在线地址 1:https://benjdd.com/languages/
在线地址 2:https://benjdd.com/languages2/
我们可以克隆这个项目到本机测试:
git clone https://github.com/bddicken/languages
进入目标基准测试目录:
cd loops
运行以下脚本编译:
../compile.sh
然后执行以下脚本:
../run.sh
你应该会看到类似如下的输出:
$ ../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
...
执行完成后,使用以下命令清理:
../clean.sh