总算是续上了!
本周情况
期末周终于熬过去了,放假了,摆的很开,周报可能得改成月报了(
生活
- 没有运动(
- 吉他也没怎么练
- 练了会三月的曲子,太难力
- 番也没怎么看
- 攒一攒
- 那我在干啥?在打游戏,和 yui 玩,从彩六打到派派,熬夜玩 2077 和 p5r
技术
- 工作上比较摆,只修了修 bug,补了补之前的进度
- 和组里的同事意见总是达不成一致,纠结于过于细小的事情让我效率非常低
- 主要在捣鼓 raknet-rs
- 实现了最基本的 ack/nack 处理
- 被原版 raknet 迷惑的处理方式气晕
- 加了个 codec micro bench
- 因为没有参照,不知道性能是好是坏
配置:i7-13700H/32G DDR5 4800MHz
延迟(相同数据包数量):
total data size: 16,369,200 bytes, data count: 3600, mtu: 1136
codec/decode_large_packets
time: [2.6634 ms 2.6844 ms 2.7111 ms]
thrpt: [1.3279 Melem/s 1.3411 Melem/s 1.3517 Melem/s]
total data size: 630,000 bytes, data count: 3600, mtu: 1050
codec/decode_medium_packets
time: [201.98 µs 203.43 µs 204.82 µs]
thrpt: [17.577 Melem/s 17.697 Melem/s 17.824 Melem/s]
total data size: 118,800 bytes, data count: 3600, mtu: 1188
codec/decode_short_packets
time: [148.65 µs 149.86 µs 150.87 µs]
thrpt: [23.862 Melem/s 24.023 Melem/s 24.217 Melem/s]
数据吞吐(相同数据量):
total data size: 1,636,920 bytes, data count: 360, mtu: 1136
codec/decode_large_packets_same_data_size
time: [273.53 µs 282.71 µs 290.58 µs]
thrpt: [5.2464 GiB/s 5.3925 GiB/s 5.5734 GiB/s]
total data size: 1,636,800 bytes, data count: 9300, mtu: 1056
codec/decode_medium_packets_same_data_size
time: [527.89 µs 530.53 µs 533.47 µs]
thrpt: [2.8575 GiB/s 2.8734 GiB/s 2.8877 GiB/s]
total data size: 1,637,064 bytes, data count: 49608, mtu: 1188
codec/decode_short_packets_same_data_size
time: [1.7287 ms 1.7379 ms 1.7470 ms]
thrpt: [893.67 MiB/s 898.36 MiB/s 903.14 MiB/s]
小包可以不用拆分,也就不用合并,一个 MTU 下可以塞更多,处理的延迟比较低;大包需要拆分,一个 MTU 只能塞一个,需要合并,处理的延迟比较大。
小包占用更多序列号、协议头,传输协议处理的比重更大,数据吞吐比大包少。
理论分析的结果和实验对上了。
从数值大小可以看出性能还行,实现还不算很烂(
下周计划
- raknet-rs 剩下的部分处理完,测试一下兼容性
- 基本的协议实现还差 online 层的握手,更多功能还有超时重传,滑动窗口拥塞控制,...
- 马上学咕了很久的 445 还有乐理
- CS144 貌似又好了,有时间看看
- 狠狠运动