Go 1.4 Beta 1发布,运行时有了重大改进

Go 1.4 Beta 1发布,运行时有了重大改进

Go语言是由Google开发的一个开源项目,目的之一是为了提高开发人员的编程效率。近日,在Go 1.3.3发布一个月之后,Go官方宣布Go 1.4 Beta 1版本发布。此版本在支持向后兼容的前提下重点多编译器和运行时进行了改进,并实现了不同架构处理器的支持等。值得关注的改进内容如下:

1、运行时

对运行时做了重大的改进,如垃圾收集器、并发处理、接口管理、maps方法、slices方法、字符串等使用Go语言进行了重写(原来大部分使用C语言编写),使得垃圾收集器可以扫描运行时的程序栈,以获得变量的精确信息,从而提高了垃圾收集器的精确性。垃圾收集器的精确性得到了提高,将不会存在非活跃引用对象而不被垃圾回收的情况了,从而减少了堆的大小(相对上一版本减少了10%-30%)。程序栈不再进行分割,剔除了“hot split”问题,在不影响性能的情况下,连续栈的使用减少了栈的初始化大小,已从8192字节减少到了2048字节。另外,还修复了1.3版本中无效指针引起的运行时崩溃问题。

2、操作系统和服务器架构

支持运行Android系统的ARM处理器;支持运行Plan9系统的AMD64处理器;支持Native Client (NaCl) ARM处理器。

3、标准lib

修复了bufio.Scanner包中SplitFunc方法的生成空token的Bug;新的 go.sys 包替代了syscall包;重写了encoding.gob包,剔除了不安全的操作; net.http 包中的 Request新增了BasicAuth方法;compress包新增了Reset方法。另外,还对crypto.tls、reflect、runtime等包进行了改进。

除了以上主要的改进外,该版本还包括新增了用来生成构建时的源代码的“go generate”命令、为Go命令引入了定义“内部”包的新机制、对汇编语言实现的功能进行了优化等一些改进措施。

目前,该版本已提供 下载 。更多关于Go 1.4 Beta 1版本的更新内容请查看其 发行说明 。另外,根据Go的版本发布计划路线图,Go 1.4最终版本计划于今年12月1日发布;Go 1.5计划于2015年6月份发布,旨在减少垃圾收集器的延迟,从而使得Go语言更加能够满足广大用户对响应时间要求比较高的系统;Go 1.6计划于2015年12月发布,该版本将会加入指针碰撞分配和分代复制收集技术。

感谢郭蕾对本文的审校。

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

Comments are closed.