Go 1.23聚焦工具链优化,开始预览泛型类型别名
支付動態 · 2024-08-19

Go 1.23改进运行环境和编译器性能,还更新标准函数库,优化计时器的行为,并加入unique数值规范化套件

编程语言Go最新版本1.23发布,这次更新重点在于工具链、运行环境和函数库。Go 1.23编译器改进了PGO(Profile Guided Optimization)的性能,运行环境调整严重错误的消息格式,而标准函数库部分则更新计时器行为,并引入unique数值标准化套件。

在语言功能方面,Go 1.23将Go 1.22中的range-over-func实验性功能纳入正式语法规范,也就是说,在for-range循环中,range子句现在接受特定类型的迭代器函数作为range表达式,像是func(func() bool)、func(func(K) bool)和func(func(K, V) bool)。这些函数调用会生成循环的迭代值,使得循环结构更加灵活,进一步扩展了Go语言的迭代能力,增加Go的表达性。

另外,Go 1.23还预览泛型类型别名(Generic Type Aliases),开发者可以通过替泛型类型创建别名,使代码更加简洁和可读,更好地处理复杂的泛型类型。不过目前仅限于套件内使用,还不支持跨套件边界的泛型类型别名应用。官方通过加入泛型类型别名,替之后Go语言的扩充和泛型应用铺路。

Go运行环境和编译器也有数项重要更新,在运行环境方面,当发生严重错误时,错误消息的格式有所改善,内容将会缩进与第一个goroutine堆栈追踪有所区分,使开发者更直觉地理解错误的位置和原因。

Go 1.23编译器则提升PGO,大幅降低建置时间成本,过去开发者激活PGO可能会让建置时间增加一倍,但现在这个时间开销已经减少至个位数百分比。针对386和amd64架构,编译器还引入热区块对齐(Hot Block Alignment)技术,通过利用PGO信息优化循环中的热区块,微幅提升程序性能。

标准函数库则有两项更新,首先,计时器行为有明显的改变,未被程序引用的time.Timer和time.Ticker现在即使没有调用Stop方法,也会立刻成为垃圾回收的目标。官方解释,这样可以避免无效计时器和定时器的资源占用。

Go 1.23标准函数库还引入新的unique套件,能够将可比较类型的数值进行规范化(Canonicalization)。规范化是指将具有多种表示形式的数据,转换成标准或是规范形式。该过程有助于减少内存使用,并提高数值比较的效率。

新版本Go所引入的遥测功能,允许Go工具链收集和使用错误统计数据,使得Go官方了解工具链运作状况。开发者需要使用命令主动打开遥测功能,在默认模式工具链会将统计数据存储在本地,当激活遥测模式,匿名统计数据才会每周上传至官方网站供分析使用。

热门文章
横跨全球6个城市,灰度8场派对邀你共看世界杯,重塑高质量社交新场景
灰度头条
英国确认各垂直行业的赌博税税率
游戏风向
印度最高法院受理公益诉讼,要求全国禁封“伪装”成社交游戏的赌博平台
游戏风向
密西西比州众议院委员会推进提议增加赌场税的法案
游戏风向
灰度在iGB L!VE 2026展位T70和你相约7月,一起点燃伦敦的热情!
灰度头条
哈萨克斯坦计划对在线赌场促销活动进行处罚
游戏风向
新泽西州7月博彩收入创6.06亿美元新高,颁布禁令
游戏风向
JILI 宣布与全球板球传奇 AB de Villiers(ABD)达成重磅战略合作
体育游戏
越南在线博彩业政策收紧 催生市场新机遇
东南亚资讯
GGC Awards 2026 璀璨科伦坡:致敬 iGaming 行业的领航者与创新力量
灰度头条
越南博彩管控逐步放宽,惟本土需求仍显乏力
东南亚资讯
超级PAC筹资4800万美元:体育博彩势力加码
游戏风向
张侨伟参议员排除全面禁止,敦促菲律宾规范网络赌博
东南亚资讯
巴西颁布新法赋权央行封锁非法博彩账户及 Pix 交易
支付动态
准备好了将你的收益最大化吗?尝试ProPush.me Constructor!
广告营销
首页
游戏
合作
发现
我的