论坛风格切换
正版合作和侵权请联系 sd173@foxmail.com
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 111阅读
  • 0回复

[业界新闻]Cloudflare 称赞 Golang PGO 大幅节省 CPU 资源 [复制链接]

上一主题 下一主题
 

发帖
6718
今日发帖
最后登录
2024-11-14
只看楼主 倒序阅读 使用道具 楼主  发表于: 2024-05-20 09:06:41
  一年多前发布的Golang 1.20支持Profile Guided Optimizations(PGO),此后在Go 1.21中得到了改进,Go二进制文件的执行速度提高了2~7%,这要归功于其他编译器也采用的这种优化方法。Cloudflare的工程师本周发布了一篇博文,称赞Go的PGO支持以及因此节省的CPU资源。 &-tf/qJ  
<taW6=;c  
  编译器的PGO支持非常好,前提是有足够多的样本作为配置文件反馈给编译器,这样编译器就能对代码进行适当的优化。编译器可以根据收集到的配置文件/反馈做出更明智的优化,但与更容易应用的编译器优化相比,这确实需要额外的步骤。就Golang的PGO而言,某些代码库的改进幅度可高达14%。 ggWfk  
oyY,uB.|  
  Cloudflare拥有一些基于Go的服务,这些服务依赖于全球成千上万的CPU核心,因此他们最近开始探索Golang的PGO对其基础架构的影响。结果如下 3._fbAN%e  
kdq55zTc<6  
  这表明,在发布之后,我们使用的内核比发布之前少了约97个,减少了约3.5%。这似乎与上游文档中给出的2%到14%之间的数字相符。 XFYl[?`G  
-0Ek&"=Z^  
  我们可以感受到的的第二个数字是一周内不同天同一时间的使用率。发布前7天的平均使用率为3067.83个内核,而发布后7天的平均使用率为2996.78个内核,节省了71个CPU。虽然比不上我们节省的97个CPU,但也相当可观了!这似乎证明了PGO的好处--在完全不改变代码的情况下,我们成功地为自己节省了几台服务器的CPU计算时间。  73X]|fy  
(Nf.a4O  
  考虑到当今的服务器成本以及总拥有成本(包括能源和冷却成本),节省几台服务器的CPU时间意义重大,这是以最少的投资实现的效率提升。今后,他们还将探索更多的剖析,通过BOLT或LTO优化和其他调整进一步优化。 &,xM;8b  
 -W ,b*U  
  更多详情请访问Cloudflare博客。 -fv.ByyA