阅读更多

1顶
0踩

编程语言

转载新闻 Go 1.7 正式发布,改进编译器和链接器

2016-08-16 10:56 by 副主编 mengyidan1988 评论(0) 有5535人浏览
Go
在发布了 6 个 rc 版本之后,Go 1.7 终于正式发布了。

Go 现在的发布周期基本是半年一个版本(https://github.com/golang/go/wiki/Go-Release-Cycle),新的功能特性的开发主要集中在前 3 个月,之后会冻结起来,原则上只接受 bug 修复和文档更新,最终完成测试和发布。

Go 1.7 的变化主要在工具链、运行时和库的实现上。语言规范只有一处很小的变化。

编译工具链方面,引入 SSA 应该是新版本最大的特性之一。“开发资讯”之前也介绍过该特性:引入SSA之后,Go语言程序的执行性能将明显提升 。引入该特性之后,编译器能够生成更紧凑、执行更高效的代码。该特性默认开启,可以使用“-ssa=0”参数关闭。基准测试表明,编译的 Go 程序执行时间可减少 5-35%。

包中的元数据格式从之前的文本格式修改为更紧凑的二进制格式。生成的包会更小。可以通过“-newexport=0”关闭该特性。

得益于编译器和链接器的改进,使用 Go 1.7 构建的二进制文件通常会比使用 Go 1.6 构建的小,有些情况下减少会多达 20-30%。

性能是不变的主题,通过新的编译器后端,以及对垃圾收集器和核心库的优化,大部分程序都会运行得更快。

国外最受欢迎的游戏流媒体视频网站 Twitch 的很多系统中就用到了 Go。根据Twitch 工程师Rhys Hiltner 的博客,他们使用了 6 月的 Go 1.7 预发布版本,在没有手动调优的情况下,GC 停顿时间都有更好的表现。就 Twitch 的聊天系统而言,通常停顿时间接近 1 毫秒,与调优过的 1.6 相比,都有 10 倍提升。

支持的系统方面,增加了对 macOS 10.12 Sierra 的支持。

更多细节见 Go 1.7 发布说明:https://tip.golang.org/doc/go1.7

如果对 Go 1.8 感兴趣,可以查看 https://groups.google.com/d/topic/golang-dev/098vr4999Tk/discussion

出处:微信公众平台:开发资讯 ,作者:臧秀涛
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Golang_02: Go语言 数据类型:基础类型 与 复合类型

    其中 基础类型、复合类型 是常用的 数据结构 类型,可细分为:Go 使用 关键字声明 变量,格式:其中 类型 和 表达式赋值 可以省略一个,但不能都省略(需要能够推导出变量的类型)。如果省略初始化赋值表达式,则...

  • Go语言中sync.Map、sync.Pool和Context的用法

    map 不是并发写安全的,不支持同时并发读写,如果对 map 实例进行并发读写,程序运行时就会抛出异常,因此Go 1.9 版本中引入了支持并发写安全的 sync.Map 类型,可以用来在并发读写的场景下替换掉 map。sync.Pool ...

  • 【Go语言入门教程】Go语言简介

    文章目录Go语言简介Go语言创始人1) Ken Thompson2) Rob Pike3) Robert GriesemerGo 是编译型语言为什么要学习Go语言Go语言吉祥物Go语言的特性有哪些?语法简单并发模型内存分配垃圾回收静态链接标准库工具链Go语言为...

  • go版本发布历史

    go版本发布历史 -- 概要-- 1.13 版本 从Go 1.13开始,go命令默认使用Go module mirror和Go checksum database来下载和认证modules。 语言的变化 根据数字文字提案,Go1.13支持更统一和现代化的数字文字前缀 ...

  • 【软件周刊第 16 期】TensorFlow 1.0 正式发布,更快、更灵活、更方便开发;Go 1.8 发布,编译速度比 1.7 提高约 15%...

    编译器和链接器跑得更快。编译时间应该比 Go 1.7 缩短约 15%。在这一领域还有更多的工作要做:希望未来版本的编译速度更快。 垃圾收集暂停也明显更短,通常在 100 微秒以下,通常低至 10 微秒。 HTTP 服务器...

  • Go 语言的前生今世与介绍

    可读性(Readability): Go语言追求代码的简洁和可读性。通过格式化标准,命名规范等使代码易于阅读和理解。功能性(Usability): Go语言注重软件工程中的可用性。内置并发、垃圾回收等功能让开发者可以高效编写软件。还...

  • golang string 加号连接性能慢_C#性能优化杂七杂八的总结

    (给DotNet加星标,提升.Net技能)转自:长城以北cnblogs.com/namelessblog/p/13706651.html一、C#语言方面1.1、垃圾回收垃圾回收解放了手工管理对象的工作,提高了程序的健壮性,但副作用就是程序代码可能对于对象...

  • 关于Go语言的底层,你想知道的都在这里!

    Go语言提供了一种机制在运行时更新和检查变量的值、调用变量的方法和变量支持的内在操作,但是在编译时并不知道这些变量的具体类型,这种机制被称为反射。反射也可以让我们将类型本身作为第一类的值类型处理。反射是...

  • Cilium 1.7发布:Hubble UI、全集群网络策略、基于eBPF的Direct Server Return以及更多

    在这里,我们要向大家高兴地宣布,Cilium 1.7版本正式发布了!在本轮更新周期当中,由141位开发者组成的项目社区共完成了1551项提交,而且很多朋友是第一次为Cilium项目提交贡...

  • GO语言-第一节-初识Go语言

    本章将简要介绍Go语言的发展历史和关键的语言特性,并引领读者对Go语言的主要特性进 行一次快速全面的浏览,让读者对Go语言的总体情况有一个清晰的印象,并能够快速上手,用 Go语言编写和运行自己的第一个小程序。

  • golang string 加号连接性能慢_面试必备:浅析C#性能优化的若干种方法

    C#还提供了一个lock语句,方便使用,编译器会自动生成适当的 Monitor.Enter 和 Monitor.Exit 调用。 1.3.1.1 同步粒度 同步粒度可以是整个方法,也可以是方法中某一段代码。为方法指定 MethodImplOptions....

  • Go语言学习笔记

    本文主要涉及Go语言的基础知识,其中interface接口、goroutine协程和channel管道、反射机制等为重点内容。

  • Golang介绍

    GO

  • 决战Go语言从入门到入土v0.1

    go语言从入门到入土

  • Go语言学习之路(一)

    理解error的用法import ("errors""fmt")//接收错误信息和正确信息//加了判断,如果没有错误err=nilif err!=nil{}else {}}//b为0时抛出异常func test(a,b int) (result int, err error) { //返回错误信息err = nil。

  • 2018最新精选的Go框架,库和软件的精选列表 四

    2018最新精选的Go框架,库和软件的精选列表 四 Web框架 完整的堆栈web框架。 aah - Go的可扩展,高性能,快速开发的Web框架。 Air - Go的理想RESTful Web框架。 Banjo - 非常简单快速的Go框架。 Beego - ...

  • go语言GC面试

    垃圾回收也称为GC(Garbage Collection),是一种自动内存管理机制现代高级...而 PHP、Java 和 Go 等语言使用自动的内存管理系统,有内存分配器和垃圾收集器来代为分配和回收内存,其中垃圾收集器就是我们常说的GC。

  • Go 内存管理与垃圾回收

    Go 语言抛弃了 C/C++ 中的开发者管理内存的方式:主动申请与主动释放,增加了逃逸分析和 GC,这样开发者就能从内存管理中释放出来,有更多的精力去关注软件设计,而不是底层的内存问题。这是 Go 语言成为高生产力...

  • 基于springboot大学生就业信息管理系统源码数据库文档.zip

    基于springboot大学生就业信息管理系统源码数据库文档.zip

  • 基于java的驾校收支管理可视化平台的开题报告.docx

    基于java的驾校收支管理可视化平台的开题报告

Global site tag (gtag.js) - Google Analytics