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) - [ ] buffer 复用(Reset 不缩容:小消息占大缓冲、大消息反复扩容) - [ ] header/metadata 处理(重复拷贝与规范化) - [x] 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]
