性能比拼: Rust vs C++

本内容是对知名性能评测博主 Anton Putra 1个月前 Rust vs C++ Performance 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准

介绍

在本视频中,将对比 RustC++

会使用 Axum 框架的一个稍微改进的版本,该框架基于 HyperTokio 运行时,而对于 C++ ,我会使用 Drogon框架

我们将测量两款应用的 延迟(latency)吞吐量(throughput) ,以及 CPU 和内存使用情况(CPU & memory usage)

AWS 上运行测试,每个应用都部署在 m7a.large 实例上,该实例配备 2 个 CPU 和 8GB 内存

此外,我还设置了相同数量的线程,每个应用均使用 2 个线程,如你可以在终端中看到的那样。


测试

好了,我们现在来运行测试。

整个基准测试持续了 大约 2 小时 ,但(剪辑视频时)我将其压缩到了仅 几分钟

另外,如果你能对正在测试的应用进行优化,请提交 PR (Pull Request),我会 尽快合并重新运行测试

同时,我也需要大家的帮助,为 C++ 应用 添加额外的功能。

在测试的前半程,我注意到 两者的延迟表现非常接近,这在 Web 框架中是很少见的。

好了,我再运行 1 分钟,然后逐一分析每个图表。


结果分析

1. 吞吐量(Throughput)

C++ 仅达到 142,000 请求/秒

改进后的 Axum 达到了 176,000 请求/秒

这次 Rust 表现更好 ,相比于之前 Rust vs. Go 的基准测试有所提升,

主要原因是:

  • 这次使用了 更小的负载(payload)
  • 我接受了一些 PR,提升了整体性能。

2. 延迟(Latency)

Rust 也在延迟方面表现更优

更低的延迟 始终是更好的,特别是对于 面向客户端的应用 来说。

3. CPU 使用情况(CPU Usage)

4. 内存使用情况(Memory Usage)


结论

这一次,Rust 的整体表现优于 C++

但我希望能收到更多 PR ,进一步优化 C++ 的性能

并为其 添加更多功能

只是第一轮测试 ,接下来的 第二轮测试 将会包含:

  • 数据库测试
  • 可能会增加更多使用场景
相关推荐
uzong2 小时前
技术故障复盘模版
后端
GetcharZp2 小时前
基于 Dify + 通义千问的多模态大模型 搭建发票识别 Agent
后端·llm·agent
桦说编程3 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
IT毕设实战小研3 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi3 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
阿华的代码王国4 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Jimmy4 小时前
AI 代理是什么,其有助于我们实现更智能编程
前端·后端·ai编程
AntBlack5 小时前
不当韭菜V1.1 :增强能力 ,辅助构建自己的交易规则
后端·python·pyqt
bobz9655 小时前
pip install 已经不再安全
后端
寻月隐君6 小时前
硬核实战:从零到一,用 Rust 和 Axum 构建高性能聊天服务后端
后端·rust·github