因网上这个资料难查,因此转载一份,原文请点击

Go1.9的主要更新
类型别名
语法的更改

Go1.9中增加了类型别名这个语法,类型别名可以更优雅的实现当两个包之间struct的移动。类型别名的语法如下:

type T1 = T2

意思是声明一个T2类型的别名T1.

工具

并行编译

GO19CONCURRENTCOMPILATION=0

./…可以匹配vendor了

./...
性能

通常来说,很难去描述这些更改对各种场景的性能影响。大部分程序都应该运行的更快了,因为gc的提升,代码生成的更好和核心库的优化。

垃圾回收
runtime.GC,debug.SetGCPerentdebug.FreeOSMemorygoroutinedebug.SetGCPrercent
runtime.ReadMemStats
核心库

并发的map

MapMap

time包支持显示单调

Go1.9的time包支持每个Time值都是单调时间,这样能使当系统时间改变的时候,计算两个时间差也是安全的。具体看package docs和design doc

新的位操作包

Go1.9新增了一个包,叫math/bits,提供一些位操作的优化。

参考