最近读到了一篇文章[1],文章作者是一名来自新西兰的软件工程师 Ben Hoyt ,他曾供职于 Canonical、Compass 和 TripAdvisor 等公司。早年他实现过 Forth 编译器和小型操作系统。但是他最出名的一个项目是 GoAWK[2],这是一个用 Go 编写的支持 CSV 的 AWK[3] 解释器。
在这篇文章中,他对 GoAWK 从 1.0 到 1.22 版本的速度进行了基准测试。两个版本分别于 2012 年和 2024 年发布。整个的时间跨度为 12 年。结果令人震惊。单词计数基准测试显示速度提高了 8 倍。
更令人震惊的是,一个循环计算数字的小程序的速度也加快了。它的速度提高了 24 倍!在其他基准测试中,Go 也表现得相当快。根据测试结果,它比 Julia、OCaml、Ruby、Python 和 PHP 都要快。在一些基准测试中,Go 甚至比 Rust 更快,例如在 Primes 基准测试中:
所以如果你仍然在使用旧版本的 Go,强烈建议升级到新的版本。
更多详细的测试过程可以参考原文:https://benhoyt.com/writings/go-version-performance-2024/
参考资料 [1]Go performance from version 1.0 to 1.22: https://benhoyt.com/writings/go-version-performance-2024/
[2]goaws: https://github.com/benhoyt/goawk
[3]AWK: https://en.wikipedia.org/wiki/AWK