【译文】Go语言性能从 1.0 版到 1.22 版
💡
原文中文,约2400字,阅读约需6分钟。
📝
内容提要
本文重新运行了GoAWK解释器在Go 1.0至1.22版本上的基准测试,并添加了缺失的版本和新版本。比较了GoAWK在不同版本编译时的性能,包括字符串处理和数字计算。结果显示,Go 1.3、1.5、1.7和1.12版本有最大的改进。在Go 1.2中,数词的速度出现了奇怪的提升,然后又下降。通过剖析找出了1.2版本异常的原因。在使用Go 1.22的情况下,PGO只提高了几个百分点的性能。总的来说,countwords现在的速度是Go 1.0的8倍,sumloop是它的24倍。
🎯
关键要点
- 本文重新运行了GoAWK解释器在Go 1.0至1.22版本上的基准测试。
- 比较了GoAWK在不同版本编译时的性能,包括字符串处理和数字计算。
- Go 1.3、1.5、1.7和1.12版本有最大的性能改进。
- Go 1.2中数词的速度出现了奇怪的提升,然后又下降,原因是堆栈热分割问题。
- 通过剖析找出了1.2版本异常的原因,运行时堆栈操作占了运行时间的很大比例。
- 在使用Go 1.22的情况下,PGO只提高了几个百分点的性能。
- countwords现在的速度是Go 1.0的8倍,sumloop是它的24倍。
➡️