Go1.19 如期发布了:某些泛型程序性能改进高达 20%
2022-8-4 18:12:42 Author: mp.weixin.qq.com(查看原文) 阅读量:26 收藏

在 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 交流学习。


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxNzY0NDE3NA==&mid=2247490244&idx=1&sn=d2574c953398450f70d9234cbf29dac9&chksm=9be33525ac94bc33a0a4f0343efd29c2420d7fd00181cc64592fab5f81303603c565acab93c9#rd
如有侵权请联系:admin#unsafe.sh