基准测试 2025:Rust 对战 C++、Go 和 Python——谁主沉浮?
2025 年对于系统编程语言来说是转折性的一年。曾经被视为“时尚新手”的 Rust,不仅稳扎稳打地占据了基础设施开发领域,还深入到了高负载 Web 服务、CLI 工具和嵌入式系统中。我们进行了一系列基准测试,将 Rust 与其主要竞争对手:C++、Go 和 Python 进行了对比。结果甚至让经验丰富的开发者都感到意外。
测试方法
测试在相同硬件上进行(AMD Ryzen 9 7950X,64 GB DDR5,NVMe SSD)。每种语言都使用了最新的编译器和运行时:
- Rust — rustc 1.80.0,开启优化标志
-C opt-level=3 - C++ — Clang 18,开启标志
-O3 -march=native - Go — Go 1.23,编译时不包含调试符号
- Python — CPython 3.13,PyPy 7.3(用于对比)
测量了三个关键指标:执行速度(时间,毫秒)、内存消耗(RSS,MB)和吞吐量(对于 Web 服务器,请求数/秒)。
测试结果
1. 计算密集型任务(斐波那契数列、排序、加密)
- Rust: 12.3 毫秒,2.1 MB
- C++: 11.8 毫秒,2.3 MB
- Go: 19.7 毫秒,4.8 MB
- Python (PyPy): 145.2 毫秒,38.1 MB
- Python (CPython): 820.4 毫秒,42.5 MB
结论: Rust 在纯性能上几乎追平了 C++(差距小于 5%),但内存使用量却少了 10%。Go 的速度慢 1.6 倍,而 Python 则慢 11 到 66 倍。
2. Web 服务器(HTTP/1.1,10 000 个连接,JSON 响应)
- Rust (Actix-web): 215 000 请求/秒,14.2 MB
- Go (net/http): 178 000 请求/秒,19.8 MB
- C++ (Crow): 209 000 请求/秒,15.1 MB
- Python (FastAPI + uvicorn): 28 000 请求/秒,52.3 MB
结论: Rust 不仅比 Go 快,其吞吐量还高出 20%,并且内存效率高出 30%。使用 Crow 库的 C++ 与 Rust 几乎并驾齐驱。
3. 文件系统操作(从 CSV 中读取 100 万行)
- Rust: 0.87 秒,5.3 MB
- C++: 0.91 秒,5.8 MB
- Go: 1.42 秒,9.1 MB
- Python (pandas): 4.21 秒,127 MB
结论: 在输入输出密集型任务中,Rust 略逊于 C++,但显著领先于 Go 和 Python。