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处理器;支持NativeClient (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月发布,该版本将会加入指针碰撞分配和分代复制收集技术。
有疑问加站长微信联系(非本文作者)