手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Go 1.10改进了工具链和性能

[日期:2018-03-05] 来源:infoq.com  作者:Sergio De Simone ,译者 盖磊 [字体: ]

Go最新的1.10版并未在语言层面做出任何重大变更,而是在工具链、Go运行时和标准库上做了一系列的改进。

Go 1.10中的一个重大改进是缓存了构建结果,同时可以更好地检测过期软件包。具体而言,Go不再依赖于文件的修改时间去判断该文件是否需要做重编译,而是根据文件的内容、构建标志以及存储在编译后软件包中的元数据做出重编译的决策。这样,没有必要再指定原先用于强制重构建的“-a”标识。缓存构建包意在进一步优化构建时间,特别是当开发人员在一组构建标识或源代码版本和分支之间来回切换时。

与缓存构建类似,现在go test命令也对成功测试的结果做缓存。一旦go test检测到当前测试的可执行文件和命令行参数与上一次运行测试中所使用的匹配,那么命令将只输出缓存的测试结果。

通过允许嵌套调用LockOSThreadUnlockOSThread,Go 1.10运行时已可安全操作Linux命名空间。这意味着Goroutines现在可用于容器,排除了一些影响先前Go版本的障碍

此外,通过在更长时间跨度上使用更小部分的CPU,Go运行时改进了垃圾回收的分配延迟,同时不会对整体CPU消耗产生影响。

还应指出的是,Go的性能受益于垃圾回收的改进、标准库的优化,以及更好的代码生成。

根据Go团队的说法,主版本号如预期一样并没有发生变化,Go 1.10可与大部分使用先前1.x版本编译的程序保持兼容。

在Go 1.10中还引入了大量的改进,在此无法一一列举。完整细节可查看官方的发行说明

查看英文原文: Go Language 1.10 Improves Toolchain and Performance

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-03/151196.htm

linux
相关资讯       Go 1.10 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款