Go1.19 如期发布了:某些泛型程序性能改进高达 20%

2022年8月4日 300点热度 0人点赞 0条评论
在 Go1.18 发布 5 个月后,Go1.19 如期发布了。不过,它的大部分更改都在工具链、runtime 和库的实现中。与往常一样,该版本保持了 Go 1的兼容性承诺。因此几乎所有 Go 程序都能像以前一样继续编译和运行。

图片

Go 1.19 重要的变化有:

  • Go 1.19 完善并改进了 Go 1.18 。开发团队将 Go 1.19 的泛型开发集中在解决社区报告的一些细微问题和极端情况,以及重要的性能改进(某些泛型程序性能改进高达 20%)。

  • Go 内存模型,详细参考官方文档:https://go.dev/ref/mem。随着内存模型的更新,Go 1.19 在 sync/atomic 包引入了新的类型:types Bool, Int32, Int64, Uint32, Uint64, Uintptr 和 Pointer 等,这让原子值的使用更方便。
  • 工具方面,文档格式增强。文档注释中添加了对链接、列表和更清晰标题的支持。详情见:https://go.dev/doc/comment。
  • runtime 方面,最值得关注的变化就是增加了 runtime/debug.SetMemoryLimit,可以限制 Go 的内存使用。
  • 此外,Go 1.19 还包括了各种性能和实现改进,包括动态调整初始 goroutine 堆栈以减少堆栈复制、在大多数 Unix 系统上自动使用附加文件描述符、在 x86-64 和 ARM64 上用于大型 switch 语句的跳转表,支持 ARM64 上的调试器注入函数调用,RISC-V 上的 register ABI 支持,以及在龙芯 64 位架构 LoongArch ( GOARCH=loong64) 上运行的 Linux 的实验性支持。

其他是一些库的小变化。

详细变化可以查看官方 Release Notes:https://go.dev/doc/go1.19。

Go 语言中文网也为大家准备好了 Go1.19 的下载包:https://studygolang.com/dl。


推荐阅读

福利

我为大家整理了一份从入门到进阶的Go学习资料礼包,包含学习建议:入门看什么,进阶看什么。关注公众号 「polarisxu」,回复 ebook 获取;还可以回复「进群」,和数万 Gopher 交流学习。

图片

78560Go1.19 如期发布了:某些泛型程序性能改进高达 20%

这个人很懒,什么都没留下

文章评论