Go 1.10改进了工具链和性能
极客时间编辑部
讲述:杜力大小:854.98K时长:01:49
近日,Go 最新的 1.10 版发布,这个版本并未在语言层面做出任何重大变更,而是在工具链、Go 运行时和标准库上做了一系列的改进。
Go 1.10 中的一个重大改进是缓存了构建结果,同时可以更好地检测过期软件包。具体而言,Go 不再依赖于文件的修改时间去判断该文件是否需要做重编译,而是根据文件的内容、构建标志以及存储在编译后软件包中的元数据做出重编译的决策。
这样,就没有必要再指定原先用于强制重构建的“-a”标识。缓存构建包意在进一步优化构建时间,特别是当开发人员在一组构建标识或源代码版本和分支之间来回切换时。
与缓存构建类似,现在 go test 命令也对成功测试的结果做缓存。一旦 go test 检测到当前测试的可执行文件和命令行参数与上一次运行测试中所使用的匹配,那么命令将只输出缓存的测试结果。
通过允许嵌套调用 LockOSThread 和 UnlockOSThread,Go 1.10 运行时已经可以安全操作 Linux 命名空间。这意味着 Goroutines 现在可用于容器,排除了一些影响先前 Go 版本的障碍。
此外,通过在更长时间跨度上使用更小部分的 CPU,Go 运行时改进了垃圾回收的分配延迟,同时不会对整体 CPU 消耗产生影响。
还应指出的是,Go 的性能受益于垃圾回收的改进、标准库的优化,以及更好的代码生成。
根据 Go 团队的说法,主版本号如预期一样并没有发生变化,Go 1.10 可与大部分使用先前 1.x 版本编译的程序保持兼容。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论