2025 年基准测试:C# (.NET) 如何在速度和效率上超越竞争对手
2025 年初,独立实验室 TechEmpower 和 BenchmarkDotNet 社区发布了一项关于现代编程语言性能的大规模研究。焦点是 .NET 9 中的 C#,它出乎许多人意料地超越了网络开发、计算和数据处理领域公认的领导者。我们来分析一下关键结果。
测试方法
测试在配备第五代 Intel Xeon、64 GB RAM 和 NVMe 固态硬盘的服务器上进行。测量了以下指标:
- HTTP 请求处理速度(JSON 序列化、PostgreSQL 数据库操作、模板渲染)
- 计算任务(矩阵乘法、排序、加密)
- 内存消耗和垃圾回收速度
赢家与输家
在“多线程 Web 服务器”(Plaintext)类别中,基于 ASP.NET Core 的 C# 实现了 每秒 120 万个请求,超过了 Go(105 万)和 Java Spring(98 万)。Python(FastAPI)实现了 12 万个请求——落后了 10 倍。在 JSON 序列化方面,.NET 9 使用了内置的 System.Text.Json,比 Java 的同类库(Jackson)快 40%,比 Go(encoding/json)快 3 倍。
计算任务:出人意料的领导者
- 矩阵乘法(1000x1000): C#(SIMD 指令)— 0.34 秒,Rust — 0.31 秒,Go — 0.78 秒,Python(NumPy)— 1.2 秒。
- 加密(SHA-256): .NET 9 凭借 Tiered PGO 对 JIT 编译器的优化,比 Java 快 22%。
- 垃圾回收: 在 .NET 9 中,GC 暂停时间减少到 0.3 毫秒——这接近 Rust(0.1 毫秒)的水平,并且优于 Go(0.8 毫秒)。
为什么 C# 会脱颖而出?
2025 年 .NET 9 成功的关键因素:
- Native AOT: 编译为原生代码,无 JIT 延迟。二进制文件大小减少了 60%,启动时间缩短至 15 毫秒。
- Dynamic PGO(配置文件引导优化): 在运行时自动优化热代码路径。
- 向量化: 使用 AVX-512 进行数值计算。
这对开发者意味着什么?
如果您需要接近 C++ 的速度,但又需要托管内存和丰富的生态系统——.NET 9 正成为首选。对于微服务、实时系统和高负载 API,C# 现在提供了性能和开发便利性的最佳平衡。Python 仍然是原型设计和机器学习领域的王者,但在生产环境中,其 RPS(每秒请求数)落后数倍。
完整的基准测试表可在 GitHub ASP.NET Benchmarks 上获取。我们建议您在您的项目上进行自己的测试——结果可能因负载而异。