AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

3. 操作系统—物理内存管理

小呆鸟

操作系统 操作 8月月更

测试需求平台2-搭建前后端分离github托管项目

MegaQi

测试平台开发 9月月更

【小程序项目开发-- 京东商城】uni-app开发之轮播图

计算机魔术师

8月月更

Sring源码解析(一)Spring是怎么读取配置Xml文件的

石臻臻的杂货铺

spring 源码 8月月更

隗华:OceanBase 企业服务助力客户实现业务无忧

OceanBase 数据库

数据、算力强支撑,佳格天地联合华为云打造农业农村大数据解决方案

IT资讯搬运工

每日一R「19」网络编程(一)

Samson

学习笔记 8月月更 ​Rust

YonBuilder移动开发 AVM框架 封装车牌号输入键盘组件

YonBuilder低代码开发平台

程序员 App 移动开发 多端开发

Prometheus 实战 (1):容器安装

Grafana 爱好者

Prometheus

深入分析JVM执行引擎

架构 Java、

【机器学习】向量化计算 -- 机器学习路上必经路

计算机魔术师

8月月更

Spring源码分析(二)Spring怎么扩展解析xml接口的

石臻臻的杂货铺

spring 源码 8月月更

常见性能瓶颈分析方法

穿过生命散发芬芳

8月月更 性能瓶颈

易周金融分析 | 银行理财市场渐趋理性;“睡眠信用卡”持续清退

易观分析

金融 银行 信用卡

前端食堂技术周刊第 50 期:TypeScript 4.8、Deno 1.25、Terminal Gif Maker、CSS :has() 伪类、Deno ch

童欧巴

【小程序项目开发-- 京东商城】uni-app开发之分包配置

计算机魔术师

8月月更

长安链源码分析启动(4)

长安链

长安链源码分析启动(5)

长安链

二层交换机与路由器的区别

阿柠xn

计算机网络 交换机 路由器 8月月更

在线图片隐写术加密传递数据

入门小站

工具

在线XML转YAML工具

入门小站

工具

前端高频面试题(附答案)

helloworld1024fd

JavaScript 前端

【小程序项目开发-- 京东商城】uni-app之分类导航区域

计算机魔术师

8月月更

真值和机器数及机器数的相互转换关系

乌龟哥哥

8月月更

1. 操作系统—概述

小呆鸟

操作系统 8月月更

2. 操作系统—中断、异常、系统调用

小呆鸟

操作系统 操作 8月月更

后疫情时代,传统制造业如何打破生产协同瓶颈?

IT资讯搬运工

在线图片隐写术解密解码传递数据

入门小站

工具

拒绝裸奔,SpringBoot集成Jasypt加密敏感信息

IT学习日记

jasypt 8月月更 Springboot配置文件加密 敏感信息加密

K-进制数(简洁 图解)

Five

算法题 8月月更

【小程序项目开发-- 京东商城】uni-app之首页商品楼层

计算机魔术师

8月月更

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