GitHub user lizining1231 edited a comment on the discussion: [OSPP 2026] Triple
协议性能分析与优化
非瓶颈分析定位,先对这份报告做出一些初步解释:
### 1. **无法复现社区现有数据趋势**:
测试显示在本机环境下dubbo-go的性能表现略弱于dubbo-java,与社区测试数据结论相违背。目前排除wsl2拖慢golang的可能性,现有数据报告显示部分场景dubbo-go与gRPC部分场景QPS比值接近1:5,在本机被放大为1:10,问题需进一步换环境/切版本分支等
尝试推进排查
### 2. **dubbo-java无allocs/op数据**:
Java 标准 API 只能统计分配字节数,没有精确的分配次数接口
### 3. **对benchmark工具进行了一些修复适配**:
| 行为 | 说明
|
| ---------------------------------------- |
------------------------------------- |
| `dubbo.protocol.name=tri` | 协议由 `dubbo` 改为 Triple(SPI 扩展名
`tri`) |
| `@EnableDubbo(scanBasePackages="benchmark")` | 扫描包对齐 Go 端
`benchmark.BenchmarkService` |
| protobuf 生成类 (`BenchmarkProto`) | 消息契约由手写 POJO 改为 protobuf
生成类,序列化与 Go 端一致 |
| `dubbo-rpc-triple` 依赖 | 引入 Triple 协议实现模块
|
### 4. **与社区一致的指标与趋势**:
测试与社区现有测试数据绝对值与指标比例均不符合,但是:
#### ①测试出的饱和拐点与社区一致
50→100 并发下社区与本地都是 dubbo-go 已饱和/微降 dubbo-go 128B 社区测 -2.5%、本地测 +2.5%;16KiB
社区本地测都降), grpc 仍线性增长 (社区测 +10.7%、本地测 +16%)
#### ②衰减曲线大部分形状与趋势一致
如50并发下QPS 相对衰减(这里归一化 128B=1.00):
| 框架 | 数据源 | 128B | 1KiB | 16KiB | 1MiB |
| --- | --- | --- | --- | --- | --- |
| dubbo-go | 社区 | 1.00 | 0.89 | 0.48 | 0.02 |
| dubbo-go | 本地 | 1.00 | 0.81 | 0.45 | 0.03 |
| grpc | 社区 | 1.00 | 0.87 | 0.41 | 0.01 |
| grpc | 本地 | 1.00 | 0.83 | 0.29 | 0.007 |
| dubbo-java | 社区 | 1.00 | 0.91 | 0.47 | 0.03 |
| dubbo-java | 本地 | 1.00 | 0.83 | 0.45 | 0.03 |
<img width="1190" height="537" alt="image"
src="https://github.com/user-attachments/assets/c2946bec-9e91-4cd4-aaaf-ea10385cc83d"
/>
### 6. **本次推进带来的新事项**:
- [x] 修复benchmark保证测试成功率 #3677
- [x] benchmark修复与提交,使其存在测试java的能力 #3689
- [x] 解读性能报告,初步确定瓶颈并进一步推进瓶颈分析
### 7. 这份测试报告在参照社区测试报告(benchmark/README.md)的基础上扩展了哪些内容:
#### ①增加指标allocs/op 与 B/op
#### ②增加轮次、环境信息
### 8. **一些本机与社区测试都可以得出的优化方向结论**:
#### ①小包相较于大包是 Triple 短板
都出现小包下与 grpc 差距大于大包下与grpc差距 (社区测得128B 低 5.4x vs 1MiB 低 4.1x ,本机测得128B 低 9.2x vs
1MiB 低 2.3x)
#### ②大包路径需优化
从绝对数值来看1 MiB 大包 都出现QPS断崖下跌,P99 崩塌(QPS 跌 57 倍、P99 795ms QPS 跌 38 倍、P99 2,400ms)
GitHub link:
https://github.com/apache/dubbo-go/discussions/3673#discussioncomment-18072069
----
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]