2 个版本
0.5.8 | 2023 年 1 月 20 日 |
---|---|
0.5.7 | 2022 年 11 月 26 日 |
34 在 #tcp-stream
53KB
1.5K SLoC
Tokio 流多路复用器
TL;DR:在单个流上多路复用多个流。具有类似 TcpListener / TcpSocket 的接口,并使用与 TCP 本身类似的 u16 端口。
[dependencies]
foo = "1.2.3"
为什么?
因为有时候你想要将尽可能多的垃圾塞入一个 TCP 流,而不是使用多个端口与你的应用程序连接。
但是为什么要这样做呢?
因为这是我需要的。受 async-smux 启发,为 Tokio 编写。
关于性能?
这个协议在协议中的整个协议不会影响性能吗?
当然,但看看基准测试
throughput/tcp time: [28.968 ms 30.460 ms 31.744 ms]
thrpt: [7.8755 GiB/s 8.2076 GiB/s 8.6303 GiB/s]
throughput/mux time: [122.24 ms 135.96 ms 158.80 ms]
thrpt: [1.5743 GiB/s 1.8388 GiB/s 2.0451 GiB/s]
大约比 TCP 慢 4.5 倍,但仍然能够以 1.8 GiB/s 的速度推送垃圾...在我看来还不错。(数字可能通过调整配置参数得到改善。)
依赖项
~5–17MB
~175K SLoC