写点什么

Google 的 Go 语言速度提升

  • 2014-06-25
  • 本文字数:730 字

    阅读完需:约 2 分钟

在经过三个月的公开测试后,Go 语言 1.3发布了。相对于 1.2,新版本在语言方面没有变化,主要带来了性能提升,支持在原生客户端下运行命令行程序,以及其他一些增强。

最有趣的一些性能和实现上的变化:

  • Go 语言运行时的栈从分段内存模型改成了连续内存模型
  • 垃圾回收更快了:使用并发的清理算法,这种算法能更好地并行处理垃圾回收,具有更大的内存页;垃圾回收带来的停顿时间下降了 50-70%。现在也已经可以精确地查看栈上的变量值了
  • 运行时库更高效地处理 defer 语句
  • 竞争检测器速度提升了 40%
  • Regexp (正则表达式的软件包)现在有了一个新的执行引擎,它使用 one-pass 算法,能更快地执行特定的简单的表达式
  • sync.Pool :一种新的类型,对于可能被系统回收内存的缓存,这种类型提供了高效的实现机制
  • 对小型 map 数据类型(不超过 8 个元素)的迭代不再以固定的顺序进行,这么做是为了防止开发人员写的代码依赖于迭代顺序,因为这种代码只有在特定的系统上才能正常工作

还有一些工具方面的改进:

  • godoc 现在可以对它索引的代码进行静态分析
  • 用 Go 语言重写了 misc/benchcmp (性能测试工具)
  • 重构了编译器和链接器,指令选择阶段被移到了编译器中,这样做能加速大型项目的增量编译时间
  • gc 工具链现在支持在英特尔的 32 位和 64 位体系结构上使用原生客户端(NaCI)执行沙箱。注意 Go 1.3 产生的二进制文件还是不能在 Google Chrome 中直接执行

还修复了 crypto/tls 的一个安全问题

你可以从发行说明中获得所有更新的更多信息。

查看原文链接: http://www.infoq.com/news/2014/06/go-1-3


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-06-25 08:474407
用户头像

发布了 77 篇内容, 共 40.6 次阅读, 收获喜欢 26 次。

关注

评论

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

作为后端开发人员应该懂的TCP、HTTP、Socket、Socket连接池,一文详解丨Linux后端开发

Linux服务器开发

TCP 后端 socket HTTP Linux服务器开发

金三银四了!必知必会,HTTP面试题!漫画图解超硬核!

小白debug

面试 网络编程 网络 HTTP 网络层

聊聊LiteOS中生成的Bin、HEX、ELF三种文件格式

华为云开发者联盟

编译器 LiteOS Bin HEX ELF

要求输出事故报告,线上日志文件却不见了!!

陈皮的JavaLib

Java 运维 日志框架

管理者如何应对员工离职

石云升

离职 28天写作 职场经验 管理经验 3月日更

架构师训练营第一课学习笔记

杰语

Redis - 替换策略:LRU和LFU

insight

redis 3月日更

发展数字经济要因地制宜

CECBC

数字经济

你不知道的 Proxy

阿宝哥

JavaScript Proxy web api

JSP中Vue.js的使用受限

空城机

vue.js 大前端 jsp

智慧公安一键扫描二维码报警定位系统

13828808769

智慧交通

这个 29.7 K 的剪贴板 JS 库有点东西!

阿宝哥

JavaScript 开源 源码解析

另类数据:投资中的怪咖

博文视点Broadview

9种常用便捷的Java异常处理方法,帮你脱身繁琐

北游学Java

Java 异常 异常检测 异常处理

Wireshark数据包分析学习笔记Day22

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

初识Golang之函数及方法的多返回值

Kylin

3月日更

Java后端开发面试题之MySQL上篇(含答案)

北游学Java

Java MySQL 面试

常见Http响应码

风翱

3月日更 http响应码

JVM疑难情况分析

秋天

jvm调优

为什么很多工程师不了解Serverless

云原生

Serverless 云原生 Knative

17张图带你搞懂ZooKeeper一致性原理!

Java小咖秀

程序员 TCP udp 传输协议

寻找被遗忘的勇气(二十五)

Changing Lin

3月日更

聊一聊 Vue 3 双向绑定是如何工作的

阿宝哥

Vue Vue 3

区块链产品宗谱链,一款记录族谱的APP

13828808769

区块链+ #区块链#

坚持输出文字

lenka

3月日更

Python OpenCV 图像缩放 cv2.resize 方法

梦想橡皮擦

3月日更

设计与思考,关于资源和生命周期(二)

程序员架构进阶

设计实践 生命周期 28天写作 3月日更 池化技术

智能化软件开发微访谈·第十六期:低代码/无代码开发

吴盛

低代码 快速开发 sql 无代码开发

35岁了,还不知道,TCP为什么会粘包?【硬核图解】

小白debug

TCP 网络 协议栈 TCP/IP 网络层

Python基础之:Python中的IO

程序那些事

Python 人工智能 数据分析 程序那些事

风暴眼中的“以太坊”堪比堵车的北京东三环,NA公链(Nirvana)NAC公链对垒胜算几何?

区块链第一资讯

区块链

Google的Go语言速度提升_开源_Roopesh Shenoy_InfoQ精选文章