GitHub user lizining1231 edited a discussion: [OSPP 2026] Triple 协议性能分析与优化

## Dubbo-Go Triple 协议性能分析与优化

> OSPP 2026 · Apache Dubbo-Go

### 项目背景

Triple 是 Dubbo 3 的核心 RPC 协议,也是 Dubbo-Go 面向生产环境的主力协议。社区已提供 Dubbo-Go / Dubbo-Java 
/ gRPC-Go 三端 benchmark 对比工具(PR #3502),本机实测确认 Dubbo-Go 与 gRPC-Go 在 unary 
小包场景存在明显吞吐差距。项目以可复现的 benchmark 与 profiling 数据为依据,系统化定位 Triple unary 
热路径中的固定开销,在保持 Triple 功能、gRPC 兼容及 Dubbo-Java 互通的前提下落地优化,产出可合并的社区 PR。

### Step 1: 基线建立

- [x] profiling 工具链(pprof CPU/内存火焰图、runtime/trace、benchstat 显著性检验)26-8-17 Done
- [x] 三端基准测试(Dubbo-Go / gRPC-Go / Dubbo-Java,以及补充场景)26-08-17—26-08-18 Done
- [x] 兼容性回归基线(Triple 协议兼容、gRPC 兼容、Dubbo-Java 互通)26-8-18—26-8-19 Done

### Step 2: 瓶颈定位与优化设计
(从已定位的低风险固定开销开始验证,再根据正式 profiling 数据决定是否深入 Envelope、Buffer 或 Codec 热路径)
- [x] io.Pipe 交接与每请求 goroutine(调度与管道交接开销,待验证)26-8-19—26-8-21 Done
- [ ] envelope 写路径(prefix 与 body 分离写入、多次 flush)
- [x] buffer 复用(Reset 不缩容:小消息占大缓冲、大消息反复扩容)
- [ ] header/metadata 处理(重复拷贝与规范化)
- [ ] codec 序列化与反序列化(非 protobuf 场景分配放大)
- [ ] http2.Transport 参数与连接池调优(可选探索)

### Step 3: 优化落地
- [ ] 落地 io.Pipe 交接固定开销的消除路径(候选,须先通过独立 A/B 与兼容性验证) 于26-8-20起,进行中
- [ ] header/metadata 路径优化(合并拷贝、去除重复规范化)
- [ ] buffer 复用优化(按消息长度预扩容、分级缓冲池)
- [ ] codec 复用与压缩/解压输出预扩容
- [ ] 写路径对齐缓冲(合并 prefix 与 body 的大块写入)
- [ ] http2.Transport 参数与连接池调优(可选探索)

### Step 4: 验证与交付

- [ ] 同环境 A/B 对比 + benchstat(Mann-Whitney U,α=0.05)量化收益
- [ ] 全量回归测试,确认兼容性红线
- [ ] 优化前后性能数据整理,输出对比结论

> 这份文档会随任务推进而细化,每个任务对应有的性能报告、瓶颈验证、具体优化方案等会随进度以markdown文档形式发在评论区,原始数据以链接形式放在文档里。

GitHub link: https://github.com/apache/dubbo-go/discussions/3673

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: 
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to