Redian新闻
>
Go 1.21的PGO正式GA,性能提升,更快更猛!

Go 1.21的PGO正式GA,性能提升,更快更猛!

公众号新闻
出品 | OSC开源社区(ID:oschina2013)

Go 1.21 首个 RC 已发布。

虽然这是 Go 1.21 的第一个 RC,但它的版本号却是go1.21rc2。因为开发团队在为 RC1 打上 tag 后就发现了一个 bug,所以他们马上基于该版本进行了修复并发布更新。

Go 1.21 主要变化包括:提升性能、改进工具链和添加新的标准库,以及语言方面的变更。

其中值得关注的一大更新是——在 1.20 中处于预览阶段的启用配置文件引导优化 (PGO) 功能现已正式 GA

Profile-guided optimization (PGO) 是计算机编程中的一种编译器优化技术,翻译过来是使用配置文件引导的优化。

PGO 也被称为:

  • Profile-directed feedback (PDF)

  • Feedback-directed optimization (FDO)

它的原理是编译器使用程序的运行时 profiling 信息,生成更高质量的代码,从而提高程序的性能。

PGO 作为一项通用的编译器优化技术,不局限于某一门语言。比如 Rust 编译器也在探索使用 PGO微软则采用 LTO+PGO 来优化 Linux 内核

在 Go 语言中,最初关于 PGO 的提案是建议向 Go GC 工具链增加对配置文件引导优化 (PGO) 的支持,以便工具链能根据运行时信息执行特定于应用程序和工作负载的优化。

对于刚刚发布的 Go 1.21,根据 Go 团队的介绍,如果主软件包目录中存在名为default.pgo的文件,go命令将使用它来启用 PGO 构建。

他们还测试了 PGO 对多种 Go 程序的影响,发现性能提高了 2-7%

此外,Go 编译器本身已经在 1.21 中启用 PGO 进行了重建,因此它构建 Go 程序的速度也提高了 2-4%,不过这具体取决于主机架构。

Go 1.21 其他变化:

语言变更

  • 添加新的内置函数:min, max 和 clear

  • 对泛型函数的类型推断进行了多项改进,包括扩展和解释清楚规范中类型推断的描述

  • 在未来版本中,开发团队计划解决 Go 编程中最常见的问题之一:循环变量捕获 (loop variable capture)。Go 1.21 附带了此功能的预览版,目前可以使用环境变量在代码中启用该功能。

添加新的标准库

  • log/slog 包:用于结构化日志记录

  • slices 包:增用于对任何元素类型的切片进行常见操作,这个包比 sort 包更快、更符合人体工程学

  • maps 包:用于对任何类型 key-value 进行常见操作

  • cmp 包:用于比较有序值 (ordered values)

优化性能

除了启用 PGO 时的性能改进之外:

  • Go 编译器本身已经在 1.21 中启用 PGO 进行了重建,因此它构建 Go 程序的速度提高了 2-4%,具体取决于主机架构

  • 由于垃圾收集器的调整,某些应用程序的尾部延迟可能会减少高达 40%

  • 现在使用 runtime/trace 收集跟踪在 amd64 和 arm64 上产生的 CPU 开销要小得多

支持 WASI

Go 1.21 已实验性支持 WebAssembly System Interface (WASI), Preview 1  (GOOS=wasip1,GOARCH=wasm)

为了方便编写更通用的 WebAssembly (WASM) 代码,编译器还支持从 WASM 主机导入函数的新指令: go:wasmimport 。


提到 WebAssembly,刚好本周六 (7.1) 举办的「源创会」有一个和它相关的演讲分享。

演讲主题:Moonbit 编程语言平台简介

主题内容:Moonbit 是由张宏波老师带领的基础软件中心团队开发的一个专为云计算、边缘计算设计的编程语言平台,这个项目包括了面向 WebAssembly 生态设计的一款应用型编程语言及其相关完整的配套工具链

本次演讲主要介绍这个项目动机背景、宏观方向上的设计考量,以及目前的进展,并且会有现场 demo 进行一些编程语言特性的演示。

嘉宾介绍:张钰,粤港澳大湾区数字经济研究院开发工程师,Moonbit 平台核心开发人员,编程语言理论爱好者

是的,我们正式重启了和大家阔别已久的「源创会」——2023 年首场于本周六 (7.1) 在深圳举办,诚邀各位 oscer 们前来赴约。

除了有精彩的主题分享和经典的 Pizza 下午茶歇,更少不了精美礼品赠送——OSC 出品的开源 T 恤、开源内裤、定制公仔等精美奖品
活动时间2023年7月1日,周六
活动地址广东省深圳市南山区高新南四道创维半导体设计大厦裙楼四楼·SKYWORK会议中心【国际会议中心】

为了方便大家线上交流,进一步与嘉宾深度交流,小伙伴可扫描以下二维码进群。

活动报名二维码:

往期推荐



开源协议,曝出重大问题,目前无解
基于Rust的高性能编辑器Zed,在玩一种很新的 “开源”
马斯克承认“家丑”,去年大裁员给自己挖了坑



这里有最新开源资讯、软件更新、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
澳航下周试行一项新规!乘客登机更快更方便,改善航班准点率吃足“钙”后,健身一路开挂,身材也更猛!iPhone 15系列提前看:全系换C口、性能大提升,换新机的时刻到了?【案例】如何通过背景提升,提升美国名校录取概率?安卓硬件天花板!一加 Ace 2 Pro正式发布,运行内存刷新记录,2999 元起...没想到吧?中国早餐第一城,宵夜吃得更猛!希腊圣托里尼岛(Santorini),晨光白房郑旭光:'习近平很有定力'张艺谋电影最屈辱的一幕​ChatGPT大升级!更便宜,更快,允许更长文本,最重磅的是“调用函数”ICCV 2023 | 更快更强!北理工&旷视提出StreamPETR:纯视觉感知与激光雷达终有一战之力!Wilko正式倒闭!全英400家门店将全部关闭女儿要当Zoologist将微店生态带进WhatsApp,拉美泛支付服务Liquido正式上线|硅兔星项目BB鸭 | 理想L9 Pro正式上市;微信回应看朋友圈自动点赞;iPhone 14被曝电池老化;华为Mate60系列高清图曝光腾讯QQ回应考生喊话马化腾;长安汽车回应网传克扣10%货款;部分共享单车1小时涨至6.5元;推特新CEO正式上任...晒后多做一步,更快白回来!重磅!香港人才清单大扩容,这51类职业拿身份更快更容易!从阿里跳槽来的工程师,服务器缩减1/3,系统性能提升近4倍!AI 助力胃肠道疾病诊断,或比人工更快更准?Arm新一代架构发布:CPU能效提升40%,GPU性能提升15%11个LLM一起上,性能爆炸提升!AI2联合USC开源LLM-Blender集成学习框架:先排序再融合|ACL 2023继 Win11 ReFS 改进后,Linux 也获得 F2FS、Btrfs、EXT4 性能提升MBB 13万一页的PPT vs 留学生做的PPT!看到第一页就跪了比快更快|华为MateBook X Pro 2023挑战狂飙超跑、吉尼斯魔方大神探店视频未标识广告被罚,推特新CEO正式上任,QQ回应考生喊话马化腾,网信办就近距离自组网公开征求意见,这就是今天的其他大新闻!Java近期新闻:JDK 21的JEP、Spring Cloud AWS 3.0以及OptaPlanner转移至Timefold第三代“香山”将于年底完成微结构设计,性能提升50%高通加速5G时代发力,两款芯片更快更稳?!视频号用户时长翻倍,小程序月活超11亿;性能手机引领者一加Ace 2 Pro正式发布;视觉中国“维权”被打脸……网络性能提升10倍,华为24年推出商用5.5G全套网络设备|最前线《許你一世情緣》真实时、强细节、高保真:更强大的视频重建算法,性能明显提升世界首颗AI全自动设计CPU!中国团队重磅推出,性能堪比486,规模提升4000倍红帽“背叛”开源;马斯克承认“家丑”;GO1.21正式支持PGO | 周热点
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。