写点什么

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

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

关注

评论

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

Nocode 进阶 | 迎接 Amazon Honeycode,敲开 NoCode 开发大门(上)

亚马逊云科技 (Amazon Web Services)

人工智能 大前端

全国基于区块链数据知识产权质押贷款落地杭州

CECBC

NoCode 实战 | 零代码应用开发,轻松搞定任务跟踪管理难题(下)

亚马逊云科技 (Amazon Web Services)

Java 人工智能

9 个前端性能优化的最佳实践

devpoint

CSS CDN 9月日更

人工智能计算中心,助力数字经济发展的算力“虫洞”

脑极体

设定Docker容器日志的大小和轮询规则

耳东@Erdong

Docker log 9月日更

NoCode 热身系列:实现一个任务跟踪与管理系统(下)

亚马逊云科技 (Amazon Web Services)

ios android 数据库

数字人民币,支付机构的机会在哪?

CECBC

记一次Linux安全提权总结

网络安全学海

Linux 网络安全 信息安全 渗透测试 WEB安全

GitHub获120w+star的JDK源码剖析手册,竟出自Alibaba高管之手?

Java 程序员 架构 面试 Alibaba

NoCode 实战 | 零代码开发:轻松打造会议计划系统!

亚马逊云科技 (Amazon Web Services)

html

京东内部“绝密”SpringCloud实战手册,GitHub列为首推

Java 程序员 架构 面试 计算机

linux之read命令

入门小站

工具

名震Java界!字节跳动内部顶级数据结构刷题学习笔记根本停不下来

Java 程序员 架构 面试 计算机

GitHub上120K Stars!被誉为国内第一的Java多线程PDF到底有什么魅力?

Java GitHub 程序员 面试 计算机

国内独家首发版本!龙蜥操作系统(Anolis OS) 8.4 正式发行!

OpenAnolis小助手

Linux centos 开源 开源社区

计算机网络学习笔记 概述

Regan Yue

计算机网络 9月日更 计网

什么是数据驱动

奔向架构师

数据治理 9月日更

NoCode 热身系列:你准备好了吗?

亚马逊云科技 (Amazon Web Services)

人工智能 数据库

NoCode 实战 | 零代码应用开发,轻松搞定任务跟踪管理难题(上)

亚马逊云科技 (Amazon Web Services)

人工智能 android

2022高频前端面试题汇总之React篇

buchila11

React

🏆(不要错过!)【CI/CD技术专题】「Jenkins实战系列」(4)总结归纳Jenkins的安装使用和配置流程介绍

洛神灬殇

maven jenkins git 学习 9月日更

NoSQL-MongoDB

hanaper

AI应用说 | 「虫口夺粮」的害虫识别还是牛场24小时无人监控,AI+农业话题咱们唠一唠

百度大脑

NoCode 实战 | 想要开发在线选课系统?何必那样大费周章!

亚马逊云科技 (Amazon Web Services)

html html5

序列化与反序列化之Protostuff(一)

程序员架构进阶

架构 protobuf 9月日更 序列化与反序列化 protostuff

Java字节码技术学习笔记

风翱

Java 9月日更

如何提高开会效率?

石云升

项目管理 管理 引航计划 内容合集 9月日更

NoCode 热身系列:实现一个任务跟踪与管理系统(上)

亚马逊云科技 (Amazon Web Services)

html 自动驾驶 ios

跨语言编程的探索 | 龙蜥技术

OpenAnolis小助手

Java c++ 开源社区

GitHub上下载量突破100000+阿里巴巴的这份开源项目如此牛逼

Java 编程 架构 面试 计算机

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