Go 1.21 第一个候选版本 (RC) 现已可供 下载 页 ! Go 1.21 充满了新功能和改进。 获得 RC(候选版本)可以让你尽早尝试,尝试一下 它会影响您的工作负载,并在最终发布之前报告任何问题(预定 八月)。 以下是 Go 1.21 中的一些显着变化和功能; 为充分 列表,请参阅 完整的发行说明 。
(请注意,Go 1.21 的第一个 RC 称为 go1.21rc2
因为标记后发现并修复了一个错误 go1.21rc1
)
工具改进
文件引导优化 (PGO) 功能 我们宣布预览的配置 1.20 现已正式上线! 如果一个文件名为
default.pgo
存在于主包的目录中,go
命令 将使用它来启用 PGO 构建。 参阅 PGO 文档 请 更多细节。 我们测量了 PGO 对一系列广泛的 Go 程序的影响, 性能提升 2-7%。
语言变化
对泛型函数的类型推断进行了多项改进。 的描述 规范中的类型推断 已得到扩展和澄清。
在 Go 的未来版本中,我们计划解决最常见的问题之一 Go 编程的陷阱: 循环变量捕获 。 Go 1.21 提供了此功能的预览版,您可以在代码中启用该功能 使用环境变量。 请参阅 此 LoopvarExperiment wiki 页面 了解更多详情。
标准库添加
提高性能
除了启用 PGO 时的性能改进之外:
Go 编译器本身已在 1.21 中启用 PGO 进行了重建,并且作为 结果,它构建 Go 程序的速度提高了 2-4%,具体取决于主机架构。
由于垃圾收集器的调整,某些应用程序可能会看到高达 40% 尾部潜伏期减少。
收集跟踪 使用运行时/跟踪 现在 在 amd64 和 arm64 上产生的 CPU 成本要小得多。
WASI 的新港口
的实验端口 Go 1.21 添加了WebAssembly 系统接口(WASI) ,
预览 1 ( GOOS=wasip1
, GOARCH=wasm
)。
为了方便编写更通用的 WebAssembly (WASM) 代码,编译器还
支持从 WASM 主机导入函数的新指令: go:wasmimport
。
请 下载 Go 1.21 RC 并尝试一下! 如果您注意到任何 问题,请 提出问题 。
还没有评论,来说两句吧...