写点什么

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

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

关注

评论

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

活动回顾 | 金融科技提质增效的成功方法论与实践案例

思码逸研发效能

智能测试时代来临!人工智能如何颠覆测试开发传统模式?

测试人

人工智能 软件测试 自动化测试 测试开发

SpEL应用实战

得物技术

Java sping

AWS安全组是什么?有什么用?

行云管家

云计算 AWS 安全组 亚马逊云

思码逸荣获 TID 质量竞争力大会“2023 软件研发优秀工具奖”

思码逸研发效能

智能测试时代来临!人工智能如何颠覆测试开发传统模式?

霍格沃兹测试开发学社

零门槛AI开发平台EasyDL:百亿参数大模型ERNIE的加持

百度开发者中心

人工智能 深度学习 AI

[行业经验] 跨AZ容灾混沌演练

腾讯云混沌演练平台

容灾 混沌演练 跨AZ

大模型时代下的文档识别与分析

百度开发者中心

人工智能 文档 大模型

一文搞懂设计模式—模板方法模式

Java随想录

Java 设计模式

你所在的行业,有必要做小程序么?

天津汇柏科技有限公司

小程序 小程序开发 开发小程序

Flink 在蚂蚁实时特征平台的深度应用

Apache Flink

大数据 实时计算 flink 实战

开年喜报!Walrus成功入选CNCF云原生全景图

SEAL安全

开源 运维 cncf Walrus

orca市值机器人/刷量机器人/做市机器人

区块链技术

直播回顾 | 去哪儿网研发数字化洞察实践

思码逸研发效能

面试官让我讲讲MySQL三大核心日志实现原理

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟

通俗易懂剖析Go Channel:理解并发通信的核心机制

王中阳Go

Go golang 面经 Go 语言 Go学习路线

细粒度的代码权限怎么做?极狐GitLab 代码所有者来帮忙

极狐GitLab

AI大模型时代:企业如何构建数据智能基础设施

百度开发者中心

AI 大模型 人工智能’

软件测试学习笔记丨Docker安装,容器管理和镜像管理

测试人

软件测试 自动化测试 测试开发

运维工作新时代:自主编码实现运维自动化的转型之旅

京东科技开发者

Qualcomm’s “core”QCN9274 leads WiFi 7 to break through the boundaries of wireless connections

wallysSK

我是怎么用静态IP代理为Google账号保驾护航的

陈橘又青

AI数字虚拟人来了你会失业吗?

小齐写代码

实例详解在Go中构建流数据pipeline

华为云开发者联盟

开发 华为云 华为云开发者联盟 Go并发范式

智能测试时代来临!人工智能如何颠覆测试开发传统模式?

测吧(北京)科技有限公司

测试

NGINX Agent 的可观测性和远程配置

NGINX开源社区

可扩展性是什么意思?为什么企业采购软件时候需要考虑可扩展性?

行云管家

软件 可扩展性 采购

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