1.1 消息能提交多快?
为了追求极致的性能,TwoBufQueue 提供单块 WriteSession,让生产者在当前块中快速连续写入。
下面四张图展示 Session 对照实验的生产者发送吞吐,单位 M条/s,越高越好。四种消息长度使用同一组 TwoBufQueue 参数,开源队列使用各自的测量配置;其他实现保持上游源码不变。
8 B
16 B
32 B
64 B
这些数字只计生产者发送阶段,包括申请块、换块和发送期间的等待;每轮发送后的排空在计时外。测试启用真实的复制线程和消费线程。回调循环为 0 次,开源槽位/TwoBufQueue 第二层容量均为 256 MiB;此 Session 配置的第一层也为 256 MiB,和下方 16 KiB 生产者池的业务测试是两个不同实验。
| 你的发送方式 | 查看完整结果 |
|---|---|
| 在一个块中连续写多条消息 | WriteSession |
| 使用普通 write,允许在块交接时发布 | 批量发布 |
| 使用普通 write,每条消息都发布进度 | 每条发布 |
报告还包含 p50、p99、p999 和背压。写入耗时按每组 1,000 次写入的平均耗时统计,不是单次调用或端到端延时;不同写入方式分别调优。完整负载、参数、三轮数据和复现命令见性能测试说明。