PGO (基于profile指导的优化) 在Go 1.20 中还属于预览状态, 在Go 1.21中已经生产可用了, 未来 PGO 还有很宏伟的目标,但是现在已经可以很好的帮助我们提高程序的性能呢,根据程序的不同,可能会带来2% ~ 7%的提升,不要小看这个提升,如果你是在大厂做优化的专家,可以这样计算: “我厂大概有 10万Go实例,每个实例平均占用16个核,通过我们的优化,程序性能平均提升5%, 大约节省9万个核,每年为公司节省数亿元的成本”。
最近看到两篇关于PGO的文章:Profile Guided Optimizations in Go 和 Go官方的博客 Profile-guided optimization in Go 1.21。相比较而言, Go官方这篇文章简单明了,而且把·细节也交代的明明白白,所以我就把这篇文章翻译过来,我感觉我自己写也没有官方这篇写的明白,翻译过来就好了。
以下是译文:
