NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:002857
用户头像

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

关注

评论

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

C# 窗体应用常用基础控件讲解(适合萌新)

IC00

C# 7月月更

YonBuilder赋能创新,用友第四届开发者大赛“金键盘奖”开启竞逐!

科技热闻

Seata 在蚂蚁国际银行业务的落地实践

SOFAStack

开源项目 seata 项目实践 多编程语言 蚂蚁国际

如何使用TDengine Sink Connector?

TDengine

tdengine Kafk

学习Typescript(一)

bo

前端 ts 7月月更

续上,Python爬虫在 fiddler 中调用本地 JS 代码文件

梦想橡皮擦

Python 爬虫 7月月更

OpenAtom OpenHarmony分论坛,今天14:00见!附大事记精彩发布

OpenHarmony开发者

OpenHarmony

华硕无双,这可能是屏幕最好的平价高刷轻薄笔记本

科技热闻

学习Java开发技术建议

小谷哥

一骑入秦川——浅聊Beego AutoRouter是如何工作

Regan Yue

Go 源码刨析 Go web 签约计划第三季 Beego

Snowflake vs. Databricks谁更胜一筹?2022年最新战报

雨果

数据中台 数据平台 snowflake DaaS数据即服务 Databricks

通过14个入门实战案例教大家快速学习Python编程语言

小院里的霍大侠

Python Python初学者 程序员‘ 编程入门 兴趣编程

尚硅谷Elasticsearch8.X视频教程

小谷哥

面试官常问:如何手撸一个“消息队列”和“延迟消息队列”?

程序员啊叶

Java 编程 程序员 架构 java面试

《数字经济 科技向善》大咖对谈干货来啦

易观分析

金融科技

WEB服务如何平滑的上下线

转转技术团队

nginx Java web

字节前端面试题总结

buchila11

前端面试

在web前端培训机构应该如何学习前端

小谷哥

音乐体验天花板!14个网易云音乐的情感化设计细节

张姣发

创新 交互设计 网易云音乐

语音直播系统——开发推送通知需要遵守的原则

开源直播系统源码

数据分析如何解决商业问题?这里有份超详细攻略

博文视点Broadview

Java 多商户外贸版 PC 端功能,出场就是这么硬核!

CRMEB

Java——AOP案例之测量业务层接口执行效率

王小凡

Java 程序员 apo

什么是私域流量?

源字节1号

软件开发

Qt | 关于Qt Creator打开项目编译不过的问题

YOLO.

qt 7月月更

深入理解MySQL主从复制原理以及集群部署过程

jiangxl

MySQL 数据库 运维 dba 签约计划第三季

以科技传递温度,vivo亮相数字中国建设峰会

Geek_2d6073

腾讯云联合中国工联院发布工业AI质检标准化研究成果加速制造业智能化转型

科技热闻

es6 class 继承的重点

掘金安东尼

JavaScript 前端 ES6 7月月更

web前端技术前景如何?

小谷哥

程序员培训学习后好找工作吗

小谷哥

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