代理节点端热路径的零分配改造:原则、五个模式与实测
TL;DR — 代理节点端的热路径是”每秒几十万次的小操作”:封一帧、加密一块、排队一个上传分片、发一个 UDP 报文。这类路径上每次操作多一次堆分配,单看 ns/op 几乎没有变化,但会以 GC assist、堆扫描和尾延迟抖动的形式在高负载下集体兑现。这篇记录一轮把 SMux、VLESS Encryption、XHTTP、AnyTLS、Hysteria2 等热路径改到 0 allocs/op 的工作:先定六条原则,再用五个可复用的模式落地,每个模式都配 wire 格式不变的 round-trip 测试与前后基准。最后一节讲零分配买不到的东西:当 profile 里排第一的是
writesyscall 时,该做的是写合并,而我们否决了两种看起来更聪明的源侧方案。