前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2023年8月8日 Go生态洞察:Go 1.21 版本发布探索

2023年8月8日 Go生态洞察:Go 1.21 版本发布探索

作者头像
猫头虎
发布2024-04-09 14:38:52
1870
发布2024-04-09 14:38:52
举报
文章被收录于专栏:猫头虎博客专区

2023年8月8日 Go生态洞察:Go 1.21 版本发布探索 🌟

摘要:🐯 大家好,猫头虎博主今天带来的是关于Go语言的最新消息 - Go 1.21版本的发布!这次更新包含了众多新功能和改进,我们将深入探讨每一个亮点。👩‍💻 搜索词条:Go 1.21, 语言改进, 标准库, 性能提升。

引言

亲爱的Go开发者们,又是激动人心的时刻!Go 1.21正式发布了。作为一名热衷于Go语言的博主,我迫不及待地想与大家分享这次更新的精彩内容。让我们一起看看Go 1.21带来了哪些新特性和提升吧!

正文内容

🛠️ 工具改进

Go 1.21带来了一些重要的工具改进:

  • 首先,我们在1.20中预览的Profile Guided Optimization (PGO)功能现已全面可用!如果在主包目录中存在default.pgo文件,go命令将启用PGO构建。PGO的影响是显著的,对各种Go程序进行了测试,性能提升了2-7%。
  • go工具现在支持向后向前的语言兼容性。
📚 语言变化

Go 1.21在语言层面也有一些显著变化:

📦 标准库新增

标准库在这次更新中也有新增内容:

  • 新的log/slog包,用于结构化日志。
  • 新的slices包,提供了对任意元素类型切片的常见操作。这包括比sort包更快更方便的排序函数。
  • 新的maps包,提供了对任意键或元素类型映射的常见操作。
  • 新的cmp包,为有序值比较提供了新工具。
🚀 性能提升

除了启用PGO时的性能提升外:

  • Go编译器本身在1.21版本中也启用了PGO,结果是,根据宿主架构的不同,构建Go程序的速度提升了2-4%。
  • 由于调整了垃圾收集器,一些应用程序的尾部延迟可能减少了高达40%。
  • 在amd64和arm64上,使用runtime/trace收集跟踪现在对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愉快!

关键点

描述

工具改进

PGO功能全面可用,go工具支持语言兼容性

语言变化

新增内置函数min、max和clear,泛型函数类型推断改进

标准库新增

新增log/slog、slices、maps和cmp包

性能提升

启用PGO后的编译器性能提升,垃圾收集器调优,减少了runtime/trace的CPU开销

WebAssembly System Interface (WASI) 新端口

支持WASI预览版,增加了go:wasmimport指令

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2023年8月8日 Go生态洞察:Go 1.21 版本发布探索 🌟
    • 引言
      • 正文内容
        • 🛠️ 工具改进
        • 📚 语言变化
        • 📦 标准库新增
        • 🚀 性能提升
        • 🌍
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档