本内容是对知名性能评测博主 Anton Putra Rust vs. Go (Golang): Performance 2025: Performance 2025") 内容的翻译与整理, 有适当删减, 相关数据和结论以原作结论为准。
再次对比 Rust 和 Go,但这次我们使用的是最具性能优势的 HTTP 服务器库---
Hyper,它基于 Tokio 异步运行时。如果你想构建任何 Web 应用,Tokio 运行时已经成为事实上的标准,许多框架(如 Axum)实际上都是构建在 Hyper 和 Tokio 之上的。事实上,在过去的一年里,测试过的所有语言/框架中,Hyper 是最快的框架。
所有的测试都在 AWS 上运行,在本次视频中,我使用的基础设施与之前的视频完全相同:我使用 m7a.large EC2 实例,并通过 Systemd运行应用程序,而客户端和监控代理则运行在 EKS(Elastic Kubernetes Service)集群上。
好了,现在让我们开始测试!整个测试大约进行了 2 小时,但在编辑(视频)时我将其压缩到了几分钟。我们主要测量以下几个指标:
- 延迟(Latency),使用 P90 百分位作为衡量标准。
- 吞吐量(Throughput),即每秒请求数(Requests Per Second)。
- CPU 使用率。
- 内存使用情况(Memory Usage)。
需要注意的是,这里的内存使用情况是针对整个虚拟机(VM)的,因此可能不像直接从 Kubernetes 运行的容器中测量的那样准确。按照惯例,我会再运行 一分钟的测试,然后我们逐个分析每个图表。
测试结果分析
首先,我们来看吞吐量(Throughput),即每秒请求数。从结果来看,Go 的表现与之前视频中的水平相当,但 Rust 再次成为最快的应用。它在 仅使用两个 CPU 的情况下,达到了接近 160,000 请求/秒,而其他任何应用都无法接近这个水平,Zig 可能是最接近的一个。
接下来是延迟(Latency),这是最重要的指标之一。在这项测试中,Rust 同样比 Go 表现更好。
然后是 CPU 使用率(CPU Usage),从图表可以看到,Rust 的 CPU 占用率明显比 Go 低,意味着它在同等负载下更加高效。
最后是 内存使用情况(Memory Usage),不过这并不是本次视频的重点,因此我们不做过多分析。
如果你知道哪种编程语言或运行时能与 Rust 竞争,请告诉我!如果你还能帮助用该语言开发一个简单的 Web 服务器,那就更棒了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。