Rust vs. Go: 性能测试(2025)

news2025/4/23 18:36:26

本内容是对知名性能评测博主 Anton Putra Rust vs. Go (Golang): 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://www.coloradmin.cn/o/2324718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JDBC的详细使用

1. JDBC概述 JDBC[Java Database Connectivity]是 Java 语言中用于连接和操作数据库的一套标准 API。它允许 Java 程序通过统一的方式与各种关系型数据库,如 MySQL、Oracle、SQL Server 等交互,执行 SQL 语句并处理结果。 1.1 JDBC原理 JDBC的核心原理…

瑞芯微 RKrga接口 wrapbuffer_virtualaddr 使用笔记

一、源码 官方在librga中给了很多 demo 以供参考&#xff0c;例如 imresize 操作&#xff1a; /** Copyright (C) 2022 Rockchip Electronics Co., Ltd.* Authors:* YuQiaowei <cerf.yurock-chips.com>** Licensed under the Apache License, Version 2.0 (the &qu…

【数据结构】[特殊字符] 并查集优化全解:从链式退化到近O(1)的性能飞跃 | 路径压缩与合并策略深度实战

并查集的优化 导读一、合并优化1.1 基本原理1.2 按大小合并1.3 按秩合并1.4 两种合并的区别**1.4.1 核心目标****1.4.2 数据存储****1.4.3 合并逻辑****1.4.4 树高控制****1.4.5 适用场景****1.4.6 路径压缩兼容性****1.4.7 极端案例对比****1.4.8 小结**二、查找优化2.1 路径压…

如何在 AI 搜索引擎(GEO)霸屏曝光,快速提升知名度?

虽然大多数人仍然使用 Google 来寻找答案&#xff0c;但正在发生快速转变。ChatGPT、Copilot、Perplexity 和 DeepSeek 等 LLM 已成为主流。这主要是因为每个都有自己的免费和公共版本&#xff0c;并且总是有重大的质量改进。 许多人每天都使用这些工具来提问和搜索互联网&…

VLAN综合实验二

一.实验拓扑&#xff1a; 二.实验需求&#xff1a; 1.内网Ip地址使用172.16.0.0/分配 2.sw1和SW2之间互为备份 3.VRRP/STP/VLAN/Eth-trunk均使用 4.所有Pc均通过DHCP获取IP地址 5.ISP只能配置IP地址 6.所有…

Kubernetes》k8s》Containerd 、ctr 、cri、crictl

containerd ctr crictl ctr 是 containerd 的一个客户端工具。 crictl 是 CRI 兼容的容器运行时命令行接口&#xff0c;可以使用它来检查和调试 k8s 节点上的容器运行时和应用程序。 ctr -v 输出的是 containerd 的版本&#xff0c; crictl -v 输出的是当前 k8s 的版本&#x…

SQL语句及其应用(中)(DQL语句之单表查询)

SQL语句的定义: 概述: 全称叫 Structured Query Language, 结构化查询语言, 主要是实现 用户(程序员) 和 数据库软件(例如: MySQL, Oracle)之间交互用的. 分类: DDL: 数据定义语言, 主要是操作 数据库, 数据表, 字段, 进行: 增删改查(CURD) 涉及到的关键字: create, drop, …

算法题(111):k与迷宫

审题&#xff1a; 本题需要我们寻找迷宫中的所有出口&#xff0c;若有出口需要输出距离最近的出口的距离&#xff0c;若没有就输出-1 时间复杂度&#xff1a;由于边距为1&#xff0c;我们本题采用bfs算法&#xff0c;在最坏的情况下我们需要遍历所有位置&#xff0c;时间复杂度…

Redis-常用命令

目录 1、Redis数据结构 2、命令简介 2.1、通用命令 DEL EXISTS EXPIRE 2.2、String命令 SET和GET MSET和MGET INCR和INCRBY和DECY SETNX SETEX 2.3、Key的层级结构 2.4、Hash命令 HSET和HGET HMSET和HMGET HGETALL HKEYS和HVALS HINCRBY HSETNX 2.5、List命…

从虚拟现实到可持续设计:唐婉歆的多维创新之旅

随着线上线下融合逐渐成为全球家居与建材行业的发展趋势,全球市场对高品质、个性化家居和建材产品的需求稳步攀升,也对设计师提出更高的要求。在这一背景下,设计师唐婉歆将以产品设计师的身份,正式加入跨国企业AmCan 美加集团,投身于备受行业瞩目的系列设计项目。她将负责Showr…

音视频 四 看书的笔记 MediaPlayerService

Binder机制看这里 Binde机智 这是一个分割符 Binder机智 分割(goutou) Binder机制 MediaPlayerService多媒体框架中一个非常重要的服务。MediaPlayerService 我原称之为链接之王 图片来源 MediaPlayer 是客户端 C/S 中的CMediaPlayerService MediaPlayerService::Client 是服…

vmware 创建win10 系统,虚拟机NAT网络设置

虚拟机设置&#xff1a; 物理机本机创建桥接&#xff1a; 如何创建桥接&#xff0c;请自行脑补~

【初阶数据结构】线性表之双链表

文章目录 目录 一、双链表的概念 二、双链表的实现 1.初始化 2.尾插 3.头插 4.打印 5.判断双链表是否为空 6.尾删 7.头删 8.查找 9.在指定的位置之后插入数据 10.删除指定位置的数据 11.销毁 三、完整源码 总结 一、双链表的概念 链表的结构非常多样&#xff0…

智能路由系统-信息泄露漏洞挖掘

1.漏洞描述&#xff1a; Secnet-智能路由系统 actpt_5g.data 信息泄露&#xff0c;攻击者可利用此漏洞收集敏感信息&#xff0c;从而为下一步攻击做准备。 2.fofa搜索语句 title"安网-智能路由系统" || title"智能路由系统" || title"安网科技-智能…

表格图表切换,图表无法展示问题复盘

项目背景 103项目CPC卡使用模块在原有的表格展示数据的基础之上&#xff0c;增加环状饼图图表展示&#xff0c;采用tab切换的方式实现 问题描述 图表无法设置宽高&#xff0c;导致饼图无法渲染 具体代码 // 入口页<el-tabs type"card" class"cts_flex_t…

AI赋能python数据处理、分析与预测操作流程

以数据集预测鱼类种类(Species)开展以下研究。数据格式如下: 以下是一个系统的分析思路及推荐的机器学习算法: 1. 数据预处理与探索性分析 缺失值与异常值处理: 检查数据完整性(如Roach类中Weight=0的记录需修正或删除)。 通过箱线图或Z-Score检测异常值,判断是否需…

基于74LS192的十进制两位数正向计时器(proteus仿真)

在数字电路设计中&#xff0c;计时器是一个非常常见的应用。今天&#xff0c;我将分享一个基于 74LS192 双向计数器 的十进制两位数正向计时器电路设计。这个电路可以实现从 00 到 99 的十进制正向计数&#xff0c;并通过两个七段数码管显示结果。 最终效果如图&#xff1a; 各…

算法-前缀和与差分

一、前缀和&#xff08;Prefix Sum&#xff09; 1. 核心思想 前缀和是一种预处理数组的方法&#xff0c;通过预先计算并存储数组的前缀和&#xff0c;使得后续的区间和查询可以在**O(1)**时间内完成。 2. 定义 给定数组 nums&#xff0c;前缀和数组 prefixSum 的每个元素 p…

React(六)React过渡动画-CSS编写方式

React过渡动画 react-transition-group介绍 在开发中&#xff0c;我们想要给一个组件的显示和消失添加某种过渡动画&#xff0c;提高用户体验→可通过react-transition-group实现。React曾为开发者提供过动画插件 react-addons-css-transition-group&#xff0c;后由社区维护…

第十五章:Python的Pandas库详解及常见用法

在数据分析领域&#xff0c;Python的Pandas库是一个不可或缺的工具。它提供了高效的数据结构和数据分析工具&#xff0c;使得数据处理变得简单而直观。本文将详细介绍Pandas库的基本功能、常见用法&#xff0c;并通过示例代码演示如何使用Pandas进行数据处理。最后&#xff0c;…