从高速宽带升级到光纤宽带值得吗?🤔
介绍
好消息!😉 我们成功了!Fiber版本取得了非常棒的基准测试成绩!现在,作为一款功能齐全的 Golang HTTP 框架,我们在TechEmpower 评选1.8.43中稳居第三!
❗️这篇文章不是在讨论Fiber 是否比 Express 快,这显而易见,因为 Node.js 是一种解释型语言,而 Golang 是一种编译型语言。
☝️ 我们主要测试Fiber与其他 Go 框架在以下几个方面的性能:纯文本、数据更新、多查询、单查询,当然还有JSON 序列化!😎
目录
🍿 关于 Express 和 Fiber 的几句话
首先,我和所有 Fiber 作者都非常喜欢 Express,并用它制作了很多项目!但是,Fiber 与 Express 不同。
- Express是一个极其流行的 Node.js Web 框架,至今仍是后端 JavaScript 开发人员的最佳选择。
- Fiber是一个用 Golang 编写的 Web 框架,拥有与 Expressjs 完全相同的 API。它主要面向 JavaScript 开发人员和 Go 新手,帮助他们轻松切换到 Go 后端开发。
⚙️ 测试台配置
- CPU: Intel Xeon Gold 5120 @2.20 GHz
- 内存32 GB
- GO go1.13.6 linux/amd64
- 操作系统: Linux
- 企业级固态硬盘
- NET专用思科10千兆以太网交换机
有关更多信息,请参阅项目信息框架测试概述。
🤖 基准测试结果
纯文本
明文测试仅用于测试请求路由的基本原理,旨在展示高性能平台的能力。
- 请求将使用HTTP管道发送。
- 响应有效载荷仍然很小,这意味着仍然需要良好的性能才能充分利用测试环境的千兆以太网。
✅ 光纤每秒处理6,162,556次响应,平均延迟为2.0毫秒。
✅ Express 每秒处理367,069个响应,平均延迟为354.1毫秒。
数据更新
数据库更新测试是多个数据库查询的变体,它测试 ORM 的对象持久性以及数据库驱动程序在运行 UPDATE 语句或类似语句时的性能。
该测试的目的是检验数据库执行不同数量的先读后写操作的能力。
✅ 光纤每秒处理11,846次响应,平均延迟为42.8毫秒。
✅ Express 每秒处理2,066 个响应,平均延迟为390.44毫秒。
多个查询
多数据库查询测试是单数据库查询测试的变体,同样使用 World 表。它会提取多行数据,以更显著地考验数据库驱动程序和连接池的性能。
在测试的最高每次请求查询数 (20) 下,该测试表明,随着数据库活动的增加,所有框架都趋向于每秒零请求数。
✅ 光纤每秒处理19,664次响应,平均延迟为25.7毫秒。
✅ Express 每秒处理4,302 个响应,平均延迟为117.2毫秒。
单项查询
单个数据库查询测试会检验框架的对象关系映射器 (ORM)、随机数生成器、数据库驱动程序和数据库连接池。
✅ 光纤每秒处理368,647次响应,平均延迟为0.7毫秒。
✅ Express 每秒处理57,880 个响应,平均延迟为4.4毫秒。
JSON序列化
JSON 序列化测试检验了框架的基本功能,包括保持连接支持、请求路由、请求头解析、对象实例化、JSON 序列化、响应头生成和请求计数吞吐量。
✅ 光纤每秒处理1,146,667次响应,平均延迟为0.4毫秒。
✅ Express 每秒处理244,847个响应,平均延迟为1.1毫秒。
⚠️ 选择显而易见
如果你还没有尝试过用 Go 语言运行你的 Web 项目,那么Fiber可能就是适合你的框架!
❓ 值得切换到 Go 语言吗?
这主要取决于具体使用场景。但如果您需要更高的性能,它可能会有所帮助。
💬 你喜欢纤维吗?快来分享一下吧!
Fiber 的开发者们始终关注用户在各种问题反馈和网络讨论中的意见。因此,如果您能在GitHub代码库中与开发者们分享您对Fiber 的看法和/或经验,那就太好了!
因为只有这样才能创建一个快速、灵活且友好的Go Web 框架,以应对任何任务、截止日期和开发人员技能!
— Fiber Authors
您对项目的帮助👍
- 给项目添加一个GitHub 星标。
- 在你的推特上发布关于光纤的推文。
- 帮助将 API 文档翻译
README成其他语言(目前,Fiber 已被翻译成10 种语言)。
照片由
[标题] 来自谷歌图片的索尼克
[1] Ashley McNamara https://github.com/ashleymcnamara/gophers
PS
如果你想在这个博客上看到更多类似的文章,请在下方留言并订阅我。谢谢!😻
❗️您可以通过Boosty平台支持我,既可以长期支持,也可以一次性支持。所有收益都将用于支持我的开源软件项目,并激励我为社区创作新的产品和文章。
当然,您也可以帮助我让开发者的工作变得更好!只需以贡献者的身份加入我的项目即可。很简单!
我最需要你帮助(和点赞)的项目👇
- 🔥 gowebly:一款新一代 CLI 工具,可轻松使用 Go 在后端创建出色的 Web 应用程序,使用 htmx、hyperscript 或 Alpine.js 以及最流行的 CSS 框架在前端进行开发。
- ✨ create-go-app:通过运行一条 CLI 命令,创建一个包含 Go 后端、前端和部署自动化功能的新生产就绪项目。
我的其他一些小项目:yatr、gosl、json2csv、csv2api。
文章来源:https://dev.to/koddr/are-sure-what-your-lovely-web-framework-running-so-fast-2jl1










