来晚了
之前工作上有稍微测试过
linux x84_64 (i7-4710HQ)
.net 5 vs golang 1.13.x 还 1.14.x
跑 websocket 测带宽
纯 http lookback 都可以跑满 CPU, 大概都有 3G+bps 左右
https
的情况下.net 效能比 golang 好
.net 约 500Mbps 内存约 200MB
golang 约 300~400Mbps 内存约 80MB
另一个测试是把 url 映射到 zip 档内的档案(碎档并发读取+解压缩, 都只用标准库)
https 带宽上限跟上面的差不多
但内存用量差异非常大
golang 不最佳化的情况下 内存占用约 130MB
.net 内存 500MB 起跳 并发越高吃越多内存
4C 的情况下有吃超过 6GB 结果 OOM...
基本大概抓 1C 吃 1.5 ~ 2GB 比较保守
打包后的执行档
golang 用 ldflags="-s -w" 约 5.6MB
.net AOT 不带 runtime 约 4MB
带 runtime 基本接近 100MB
回到标题, 个人还是选 golang