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

triple-unary fastpath已落地,多场景收益超出预期(预期~10%),但存在单个场景(1Mib 50并发)小幅度负收益,性能对比如下:

# Dubbo-Go Triple 协议 性能对比报告

## 基准测试报告

### 测试环境

- **Go 版本**: 1.25.6

- **OS**: Ubuntu 24.04.1 LTS (WSL2, Linux 6.6.87)

- **CPU**: Intel Core i7-10750H @ 2.60GHz, 6 核 12 线程

- **内存**: 7.6 GiB

- **测试框架**: Dubbo-Go(Triple 协议路径)

- **预热时间**: 10s

- **测试时长**: 每个用例 60s

- **轮次**: 3 轮/场景,取中位数

### 测试配置

| 参数   | 值                                     |
| ---- | ------------------------------------- |
| 报文大小 | 128B / 1KiB / 16KiB / 1MiB            |
| 序列化  | protobuf                              |
| 压缩   | none(消息级)/ 响应 gzip(HTTP 层默认)          |
| 并发数  | 50 / 100                              |
| 调用模式 | unary                                 |
| 对照项  | duplex(io.Pipe 原路径) / unary fast path |

### 128 bytes 报文

#### QPS(每秒请求数)

| 并发数 | duplex  | fastpath | 提升       |
| --- | ------- | -------- | -------- |
| 50  | 5,329.3 | 6,997.9  | +31.3% ↑ |
| 100 | 5,409.2 | 6,024.1  | +11.4% ↑ |

#### P99 延迟 (ms)

| 并发数 | duplex | fastpath | 提升       |
| --- | ------ | -------- | -------- |
| 50  | 15.99  | 12.67    | -20.8% ↑ |
| 100 | 30.58  | 29.74    | -2.7% ↑  |
> ↑ 为正收益

### 1024 bytes 报文

#### QPS(每秒请求数)

| 并发数 | duplex  | fastpath | 提升       |
| --- | ------- | -------- | -------- |
| 50  | 4,300.3 | 5,196.4  | +20.8% ↑ |
| 100 | 4,368.5 | 5,605.8  | +28.3% ↑ |

#### P99 延迟 (ms)

| 并发数 | duplex | fastpath | 提升       |
| --- | ------ | -------- | -------- |
| 50  | 20.40  | 18.22    | -10.7% ↑ |
| 100 | 37.48  | 26.95    | -28.1% ↑ |

### 16384 bytes 报文

#### QPS(每秒请求数)

| 并发数 | duplex  | fastpath | 提升       |
| --- | ------- | -------- | -------- |
| 50  | 2,584.2 | 2,871.6  | +11.1% ↑ |
| 100 | 2,428.2 | 2,815.7  | +16.0% ↑ |

#### P99 延迟 (ms)

| 并发数 | duplex | fastpath | 提升       |
| --- | ------ | -------- | -------- |
| 50  | 37.28  | 30.90    | -17.1% ↑ |
| 100 | 81.24  | 69.07    | -15.0% ↑ |

### 1048576 bytes (1MiB) 报文

#### QPS(每秒请求数)

| 并发数 | duplex | fastpath | 提升      |
| --- | ------ | -------- | ------- |
| 50  | 101.3  | 101.7    | +0.4% ↑ |
| 100 | 104.3  | 114.4    | +9.8% ↑ |

#### P99 延迟 (ms)

| 并发数 | duplex   | fastpath | 提升      |
| --- | -------- | -------- | ------- |
| 50  | 1,430.17 | 1,479.12 | +3.4% ↓ |
| 100 | 3,179.88 | 2,874.32 | -9.6% ↑ |


## 性能优化

### Dubbo-Go 客户端优化(Triple 协议路径)

| 配置项                        | 说明                                               
|
| -------------------------- | ------------------------------------------------ 
|
| `WithClientNoCheck()`      | 跳过服务检查,减少不必要的开销                                  
|
| `MaxCallRecvMsgSize: 16MB` | 最大接收消息大小,支持大报文测试                                 
|
| `MaxCallSendMsgSize: 16MB` | 最大发送消息大小,支持大报文测试                                 
|
| `WithUnaryFastPath()`      | 启用 unary fast path(tripleClient.NewConn 分支,默认关闭) 
|

### Dubbo-Go 服务端优化

服务端配置了以下优化参数:

| 配置项                                | 说明       |
| ---------------------------------- | -------- |
| `WithMaxServerRecvMsgSize("16MB")` | 最大接收消息大小 |
| `WithMaxServerSendMsgSize("16MB")` | 最大发送消息大小 |

## benchstat显著性检验 count -10

```bash
goos: linux
goarch: amd64
pkg: dubbo.apache.org/dubbo-go/v3/protocol/triple/triple_protocol
cpu: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
                │ duplex10_b.txt │           fastpath10_b.txt           │
                │     sec/op     │    sec/op     vs base                │
Unary/128B-12       163.6µ ± 21%   121.3µ ± 25%  -25.85% (p=0.003 n=10)
Unary/1024B-12      157.4µ ± 22%   113.0µ ± 18%  -28.25% (p=0.002 n=10)
Unary/16384B-12     202.0µ ± 16%   182.9µ ± 31%        ~ (p=0.393 n=10)
Unary/2MiB-12       6.891m ± 12%   7.740m ± 26%        ~ (p=0.796 n=10)
geomean             435.1µ         373.2µ        -14.24%
```
可得,
| 报文 | duplex (sec/op) | fastpath (sec/op) | 变化 | p 值 | 显著性 |
| --- | --- | --- | --- | --- | --- |
| 128B | 163.6µs | 121.3µs | -25.85% | 0.003 | 显著 |
| 1KiB | 157.4µs | 113.0µs | -28.25% | 0.002 | 显著 |
| 16KiB | 202.0µs | 182.9µs | -9.4% | 0.393 | 不显著 |
| 2MiB | 6.891ms | 7.740ms | +12.3% | 0.796 | 不显著 |
| geomean | 435.1µs | 373.2µs | -14.24% | - | 整体正收益 |

## 许可证

Apache License 2.0

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

----
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