跳至主要内容
版本:v2.x

📊 基准

TechEmpower

TechEmpower 提供了执行基本任务(如 JSON 序列化、数据库访问和服务器端模板组合)的许多 Web 应用程序框架的性能比较。

每个框架都在现实的生产配置中运行。结果在云实例和物理硬件上捕获。测试实现主要由社区贡献,所有源代码都可以在 GitHub 存储库 中找到。

  • Fiber v1.10.0
  • 28 HT 核英特尔(R) 至强(R) Gold 5120 CPU @ 2.20GHz
  • 32GB 内存
  • Ubuntu 18.04.3 4.15.0-88-generic
  • 专用思科 10 千兆以太网交换机。

纯文本

纯文本测试仅是对请求路由基础知识的练习,旨在展示高性能平台的特定容量。将使用 HTTP 管道发送请求。响应负载仍然很小,这意味着为了使测试环境的千兆以太网饱和,仍然需要良好的性能。

参见 纯文本要求

Fiber - 每秒6,162,556 个响应,平均延迟2.0 毫秒。
Express - 每秒367,069 个响应,平均延迟354.1 毫秒。

Fiber vs Express

数据更新

Fiber 每秒处理11,846 个响应,平均延迟42.8 毫秒。
Express 每秒处理2,066 个响应,平均延迟390.44 毫秒。

Fiber vs Express

多重查询

Fiber 每秒处理19,664 个响应,平均延迟25.7 毫秒。
Express 每秒处理4,302 个响应,平均延迟117.2 毫秒。

Fiber vs Express

单一查询

Fiber 每秒处理368,647 个响应,平均延迟0.7 毫秒。
Express 每秒处理57,880 个响应,平均延迟4.4 毫秒。

Fiber vs Express

JSON 序列化

Fiber 每秒处理1,146,667 个响应,平均延迟0.4 毫秒。
Express 每秒处理244,847 个响应,平均延迟1.1 毫秒。

Fiber vs Express

Go Web 框架基准

🔗 https://github.com/smallnest/go-web-framework-benchmark

  • CPU 英特尔(R) 至强(R) Gold 6140 CPU @ 2.30GHz
  • 内存 4GB
  • GO go1.13.6 linux/amd64
  • 操作系统 Linux

第一个测试用例是模拟处理程序中0 毫秒10 毫秒100 毫秒500 毫秒的处理时间。

并发客户端为5000

延迟是 Web 服务器实际处理时间。越小越好。

分配是测试运行时 Web 服务器的堆分配。单位为 MB。越小越好。

如果我们启用HTTP 流水线,测试结果如下

30 毫秒处理时间中的并发测试,10010005000 个客户端的测试结果为

如果我们启用HTTP 流水线,测试结果如下

v1.9.0 的依赖关系图