发布于 2026-01-05 4 阅读
0

从高速宽带升级到光纤宽带值得吗?🤔

从高速宽带升级到光纤宽带值得吗?🤔

介绍

好消息!😉 我们成功了!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 序列化、响应头生成和请求计数吞吐量。

JSON序列化

✅ 光纤每秒处理1,146,667次响应,平均延迟为0.4毫秒。

JSON序列化

✅ Express 每秒处理244,847个响应,平均延迟为1.1毫秒。

⚠️ 选择显而易见

如果你还没有尝试过用 Go 语言运行你的 Web 项目,那么Fiber可能就是适合你的框架!

❓ 值得切换到 Go 语言吗?

这主要取决于具体使用场景。但如果您需要更高的性能,它可能会有所帮助。

💬 你喜欢纤维吗?快来分享一下吧!

Fiber 的开发者们始终关注用户在各种问题反馈和网络讨论中的意见。因此,如果您能GitHub代码库中与开发者们分享您对Fiber 的看法和/或经验,那就太好了!

因为只有这样才能创建一个快速灵活友好的Go Web 框架,以应对任何任务、截止日期和开发人员技能!

— Fiber Authors

你喜欢纤维吗?

您对项目的帮助👍

  1. 给项目添加一个GitHub 星标。
  2. 在你的推特上发布关于光纤的推文
  3. 帮助将 API 文档翻译README其他语言(目前,Fiber 已被翻译成10 种语言)。

照片由

[标题] 来自谷歌图片的索尼克
[1] Ashley McNamara https://github.com/ashleymcnamara/gophers

PS

如果你想在这个博客上看到更多类似的文章,请在下方留言并订阅我。谢谢!😻

❗️您可以通过Boosty平台支持我,既可以长期支持,也可以一次性支持。所有收益都将用于支持我的开源软件项目,并激励我为社区创作新的产品和文章。

在Boosty上支持我

当然,您也可以帮助我让开发者的工作变得更好!只需以贡献者的身份加入我的项目即可。很简单!

我最需要你帮助(和点赞)的项目👇

  • 🔥 gowebly:一款新一代 CLI 工具,可轻松使用 Go 在后端创建出色的 Web 应用程序,使用 htmx、hyperscript 或 Alpine.js 以及最流行的 CSS 框架在前端进行开发。
  • create-go-app:通过运行一条 CLI 命令,创建一个包含 Go 后端、前端和部署自动化功能的新生产就绪项目。

我的其他一些小项目:yatrgosljson2csvcsv2api

文章来源:https://dev.to/koddr/are-sure-what-your-lovely-web-framework-running-so-fast-2jl1