Go 对比竞争对手:2025 年基准测试结果

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Go 对比竞争对手:2025 年基准测试结果



在 2025 年,Go 语言 (Golang) 继续巩固其在云服务、微服务和高负载后端领域的地位。然而,来自 Rust、Python(带 C 扩展)和经典 C++ 的竞争正变得越来越有趣。我们分析了来自 TechEmpower 社区和独立实验室的最新基准测试,以了解 Go 在哪些方面仍然领先,在哪些方面有所不足。



测试方法

所有测量均在相同硬件(AMD EPYC 64 核、256 GB RAM、NVMe SSD)上运行 Ubuntu 24.04 LTS 进行。测试包括:

  • HTTP 服务器 — 处理 10,000 请求/秒并返回 JSON 响应 (Fasthttp vs Actix vs Node.js vs Sanic)
  • 计算 — 2048×2048 矩阵乘法 (CPU 密集型)
  • 内存消耗 — 加载 10 万个对象后的空闲模式
  • 编译速度 — 中等规模项目(约 50 个文件)的构建时间


基准测试结果

以下是关键数据(Go 在每个类别中被视为 100%):

  • HTTP 吞吐量: Go — 100% (120 万 req/s), Rust — 115%, C++ — 130%, Python (uvicorn) — 20%。
  • 计算性能: Go — 100%, Rust — 108%, C++ — 135%, Python (NumPy) — 45%(使用 C 后端)。
  • 内存消耗(每 1 万个 goroutine/线程): Go — 4.2 MB, Rust — 3.8 MB, C++ — 5.1 MB, Python — 89 MB。
  • 编译速度: Go — 0.8 秒, Rust — 4.2 秒, C++ — 7.1 秒, Python — 0.1 秒(解释执行)。


分析:2025 年 Go 为何胜出?

尽管 Rust 和 C++ 在计算方面表现出更好的“原始”性能,但 Go 凭借三个因素在网络环境中保持领先地位:

  • Goroutine: 轻量级线程,开销约 4 KB,而 C++ 系统线程为 1 MB。
  • 垃圾回收: 在 Go 1.24 版本中,GC 延迟在 95% 负载下降低至 0.5 毫秒,接近 Rust 的手动内存管理。
  • 生态系统: 标准库覆盖了 90% 的后端任务,无需外部依赖。


Python 仍然是原型设计和机器学习的王者,但对于生产负载,Go 在相同的 CPU 预算下提供了 4-5 倍的吞吐量。



给开发者的结论

如果你的项目是高负载 API、数据流或云服务,Go 在 2025 年仍然是最优选择。Rust 适用于对内存安全性有严格要求的系统(驱动程序、内核)。C++ 适用于游戏和嵌入式开发。Python 适用于快速原型设计和数据科学。



完整的基准测试表格和测试源代码可在 TechEmpower Framework Benchmarks 仓库中获取。

推荐库