sheepbao 2017.06.16
世上千般伤心事,唯有生离与死别。希望奶奶在天堂幸福,不孝孙子正在回家的路上。
卧铺时漫长,遂有此文。
golang每半年更新一次版本,上次最新的版本是Go1.8,而Go1.9将在今年8月释出。
Go1.9中语法的更改只有一个,那就是增加了类型别名
,大部分更改是工具链,运行时,库的更改,
Go1.9中增加了类型别名这个语法,类型别名可以更优雅的实现当两个包之间struct的移动。类型别名的语法如下:
type T1 = T2
意思是声明一个T2类型的别名T1.
工具 并行编译在Go1.9中并行编译啊包是默认的设置,如果需要关闭并行编译,需要设置环境变量GO19CONCURRENTCOMPILATION=0
。
应各位亲们的要求,之前./...
不支持匹配vendor
目录下的文件,现在Go1.9支持了。
通常来说,很难去描述这些更改对各种场景的性能影响。大部分程序都应该运行的更快了,因为gc的提升,代码生成的更好和核心库的优化。
垃圾回收在Go1.9之前,很多库函数都是会触发stop-the-world的,而现在只会触发并发的垃圾回收。比如:runtime.GC
,deBUG.SetGCPerent
and deBUG.FreeOSMemory
,现在只会触发并发的垃圾回收,只会阻塞当前正在调用的goroutine,直到gc完成。
deBUG.SetGCPrercent
函数。。。 大对象的分配性能显著的提高,当应用程序使用超大的堆(>50G),里面包含许多大对象。
runtime.ReadMemStats
函数现在读取大堆的时间少于100us。
好吧,终于官方支持了,在sync包中新增了Map
类型,这个Map是线程安全的map。
Go1.9的time包支持每个Time值都是单调时间,这样能使当系统时间改变的时候,计算两个时间差也是安全的。具体看package docs和design doc
新的位 *** 作包Go1.9新增了一个包,叫math/bits,提供一些位 *** 作的优化。
参考go1.9 release notes
结语一直不敢相信奶奶走了。。
总结以上是内存溢出为你收集整理的Go1.9的主要更新(记回家的火车上)全部内容,希望文章能够帮你解决Go1.9的主要更新(记回家的火车上)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)