有一个网络处理程序,大量小包吞吐,直接使用 goroute 开新协程后 io.copy 直接处理后续接口。go 确实写的很快。
go1.23+编译
Linux 虚拟机下跑满虚拟网卡 100M 后,cpu 占用 4%,换成 win 下跑满虚拟网卡 100M 大约 14%。除了 cpu 占用高一些外,其他并没有明显差异,而且两者网络延迟差不多,并且都能跑满。
cpu 性能是瓶颈,但是感觉现在不重要。毕竟现在 cpu 性能普遍过剩。
而且 Windows 毕竟大多数是客户端,把性能负担加到用户,其实也是很普遍的行为了。比如著名的 electron 框架。
go1.23+编译
Linux 虚拟机下跑满虚拟网卡 100M 后,cpu 占用 4%,换成 win 下跑满虚拟网卡 100M 大约 14%。除了 cpu 占用高一些外,其他并没有明显差异,而且两者网络延迟差不多,并且都能跑满。
cpu 性能是瓶颈,但是感觉现在不重要。毕竟现在 cpu 性能普遍过剩。
而且 Windows 毕竟大多数是客户端,把性能负担加到用户,其实也是很普遍的行为了。比如著名的 electron 框架。