Go语言回顾:从Go 1.0到Go 1.13( 三 )


Go语言回顾:从Go 1.0到Go 1.13

文章插图
 
图片来自 https://blog.golang.org/survey2018-results
另外一个重要功能是一个试验功能:支持WebAssembly 。允许开发人员将Go源码编译成一个兼容四个主流浏览器的二进制格式文件 。
Go 1.12 – 2019.2该版本中 , go vet基于analysis包进行了重写 , 使得go vet更为灵活并支持Go开发人员编写自己的checker 。
更多关于analyzer的信息可以参考文章《How to Build Your Own Analyzer》 。
Go 1.13 – 2019.9在该版本中 , sync.Pool得到了改善:当垃圾回收时 , pool中对象不会被完全清理掉 。它引入了一个cache , 用于在两次GC之前清理pool中未使用的对象实例 。
逃逸分析(escape analysis)被重新实现了 , 在该版本中 , Go得意更少地在堆上分配内存了 。下面是新旧逃逸分析的基准测试对比:
Go语言回顾:从Go 1.0到Go 1.13

文章插图
 
图片来自 https://github.com/golang/go/issues/23109


推荐阅读