全书目录

第三十三篇:Fiber 完全指南 —— 极简高压快线城区宇宙

第十七章:性能调校 —— 别一上来就狂踩油门

2 分钟 451 字 第 628 / 962 个阅读单元

Fiber 官方还有一页专门叫 “Make Fiber Faster”。

它的核心态度其实很成熟:

先保证稳定,再在明确瓶颈处提速。


#1. JSON 编解码是常见瓶颈点

官方文档说明,Fiber 默认用标准库 encoding/json,如果你真测出来这里是瓶颈,可以换更快的实现:

go
import "github.com/goccy/go-json"

app := fiber.New(fiber.Config{
    JSONEncoder: json.Marshal,
    JSONDecoder: json.Unmarshal,
})

这件事的正确顺序是:

text
先压测
  ▼
找到瓶颈
  ▼
确认是 JSON 编解码
  ▼
再替换

而不是:

“我听说这个库快,所以先全换了再说。”


#2. Prefork 是真加速手段,但不是免费午餐

Fiber 的 ListenConfig 支持:

go
app.Listen(":3000", fiber.ListenConfig{
    EnablePrefork: true,
})

它会开启多进程监听同一端口,适合利用多核。

但它不是“开了就一定更好”,因为还会带来:

  • 进程数增加
  • 部署和调试复杂度上升
  • 某些全局状态使用要更谨慎

所以它更像:

给快线城区开多条并行高架。很强,但不是新手村第一天就该开的选项。


#3. 真正的 Fiber 性能观

Fiber 最值得学的,不是“某个 benchmark 图”。

而是这条工程纪律:

  • 少不必要分配
  • 少不必要复制
  • 少不必要抽象层
  • 快路径保持干净
  • 但为了快,不要牺牲系统可观测性和正确性