写点什么

Go 1.7 大幅缩短了编译时间

  • 2016-08-18
  • 本文字数:801 字

    阅读完需:约 3 分钟

据谷歌工程师 Chris Broadfoot介绍,Go 1.7 大幅缩短了编译时间,提高了运行时性能。它还增加了层次化测试和基准测试,并正式支持运行在IBM z 系统(s390x)上的Linux

正如 InfoQ 之前的报道,Go 1.7 的编译器改进主要是指,Go 有了一个基于静态单一指派(SSA)、面向amd64 平台的新编译器后端。得益于包括边界检查消除通用子表达式删除在内的多项高级优化,这个新的后端可以生成压缩率更高、执行速度更快的代码。谷歌的基准测试显示,运行时速度提升了5-35%,而编译时间和二进制代码大小减少了20-30%。事实上,基本测试可能差别很大,而据一些Hacker News 用户报告,构建速度提高了2 倍。

上面提到,新的SSA 后端只适用于amd64 平台。不过,据谷歌工程师Brad Fitzpatrick介绍,Go 1.8 的主要目标之一就是将其移植到所有支持的体系架构。Fitzpatrick 补充说,舍弃以前的后端应该可以同时简化前端,因为前端的研发目前是以新后端功能弱化为前提,需要做更多的工作。这可能会带来更大的性能提升。Go 1.8计划于2017 年2 月发布。要了解更多细节,请访问 GoLang 开发论坛

Go 1.7 还带来了其他值得注意的变化,包括子测试和子基准测试,让定义层次化测试和表驱动的基准测试成为可能。这是通过为-run-bench标识指定一个由斜杠分隔的正则表达式参数实现的,例如:

复制代码
go test -run Foo # 运行匹配“Foo”的顶层测试
go test -run Foo/A= # 运行匹配“A=”的 Foo 子测试
go test -run /A=1 # 运行所有匹配“A=1”的子测试

最后,Go 1.7 将 context 包纳入了标准库,让后者成为标准库的一部分。在进行有关网络的操作时,该包可以让取消、暂停和传递请求作用域数据变得更容易。Go 1.7 让 vendor 目录的使用成为标准,使开发人员可以使用外部依赖的本地副本,代替自动从 GOPATH或标准库获取。

要全面了解 Go 1.7 带来的新特性、改进和 Bug 修复,请查看发布说明

查看英文原文: Go 1.7 Brings Compiler Improvements and More

2016-08-18 19:003409
用户头像

发布了 1008 篇内容, 共 441.2 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

深挖502和504

书旅

nginx 服务器 HTTP 状态码

Mac JetBrains(IDE)常用快捷键

wangkx

JetBrains 快捷键

开发者关系(DevRel)的新手指南

开发者关系

开发者关系 开发者运营 技术运营 开源社区

Linux数据流重定向

wangkx

Linux linux操作

散列表高级应用之把用户访问记录优化到极致

架构师修行之路

哈希表 数据结构与算法

突破内存限制的高性能排序

架构师修行之路

物流与区块链加供应链的现状与未来趋势

CECBC

行业资讯 区块链技术 供应链

范型的下一步

申屠鹏会

翻译 Go 语言

翻译:如何编写Golang代码(How to Write Go Code)

申屠鹏会

翻译 Go 语言

troubleshoot之:GC调优到底是什么

程序那些事

性能分析 jvm调优 GC调优

同行分析优化

誓约·追光者

Sparksql 优化

今天给二叉树加个BGM,二叉树唱歌了!

我是程序员小贱

跟我一起基于 Karma 搭建一个测试环境 (中)

Jack Q

大前端 Karma 测试框架搭建

计算机网络基础(十九)---传输层-TCP的拥塞控制

书旅

TCP 协议栈 网络层

Linux之crontab命令

wangkx

Linux crontab

Linux后台开发高频题目总结

我是程序员小贱

在龙门吊上,看到破浪而来的智能时代

脑极体

TCP/IP学习(1):创建套接字

申屠鹏会

TCP 网络 TCP/IP

TypeScript 设计模式之观察者模式

Geek_z9ygea

typescript 大前端 设计模式

k8s-client-go源码剖析(一)

远鹏

开源 Kubernetes 容器 源码剖析 Go 语言

学习总结 -- Week 10

吴炳华

定义“开发者关系”

开发者关系

开发者关系 开发者运营 技术运营 开源社区

webbench源码阅读

我是程序员小贱

为什么你做的 Excel 表不好用?

Tony Wu

效率工具 产品设计 Excel ER图

随着区块链技术的成熟,全球企业开始拥抱公共区块链

CECBC

区块链技术 公共区块链

RPC原理

石刻掌纹

9个典型的开发者关系面试题

开发者关系

开发者关系 开发者运营 技术运营 开源社区

360 Atlas生产环境使用心得

心平气和

MySQL 分库分表 Proxy Atlas

二叉树的遍历(前序、中序、后序)

申屠鹏会

算法 二叉树 Go 语言

平时开发Git常用的小技巧

zui.zhang

git rebase

瀑布模型总结

我是程序员小贱

Go 1.7大幅缩短了编译时间_语言 & 开发_Sergio De Simone_InfoQ精选文章