Go 博客

Go 1.21 已发布!

Eli Bendersky,代表 Go 团队
2023 年 8 月 8 日

今天,Go 团队很高兴发布 Go 1.21,您可以访问 下载页面 获取它。

Go 1.21 包含了许多新功能和改进。以下是一些值得注意的更改;有关完整列表,请参阅 发行说明

工具改进

语言变更

标准库新增功能

  • 新的 log/slog 包用于结构化日志记录。
  • 新的 slices 包用于对任何元素类型的切片执行常见操作。这包括排序函数,这些函数通常比 sort 包更快、更符合人体工程学。
  • 新的 maps 包用于对任何键或元素类型的映射执行常见操作。
  • 新的 cmp 包包含用于比较有序值的新实用程序。

性能提升

除了在启用 PGO 时性能提升之外

  • Go 编译器本身已使用 PGO 重新构建,以用于 1.21,因此它构建 Go 程序的速度提高了 2-4%,具体取决于主机架构。
  • 由于垃圾收集器进行了调整,一些应用程序的尾部延迟可能降低了 40%。
  • 使用 runtime/trace 收集跟踪现在对 amd64 和 arm64 的 CPU 成本大大降低。

新的 WASI 端口

Go 1.21 添加了对 WebAssembly System Interface (WASI) 的实验性端口,预览版 1 (GOOS=wasip1, GOARCH=wasm)。

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


感谢所有通过编写代码、提交错误报告、分享反馈和测试候选版本为本次发布做出贡献的人。你们的努力帮助确保 Go 1.21 尽可能稳定。与往常一样,如果您发现任何问题,请 提交问题

尽情享受 Go 1.21!

下一篇文章:向后兼容性、Go 1.21 和 Go 2
上一篇文章:试验项目模板
博客索引