BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Go 1.3正式版发布

| 作者 郭蕾 关注 8 他的粉丝 发布于 2014年6月20日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

6月18日,在Go 1.2发布六个月之后,Go官方宣布正式发布Go 1.3。Go 1.3并没有引入新的语言功能,只是进行了功能改进,并修复了一些bug以及用户的反馈。新的版本开始支持DragonFly BSD、Solaris、Plan 9和Google的NaCl( Native Client),且显著改进了链接器和编译器。低版本的Go语言用户无需更改任何代码即可升级到Go 1.3。

Go语言是由Google开发的一个开源项目,目的之一是为了提高开发人员的编程效率。Go语言的并行机制使其很容易编写多核和网络应用,而重新设计的的类型系统允许构建有弹性的模块化程序。Go语言可以快读编译为机器码,同时具有高效的垃圾回收和强大的运行时反射。它是一门快速的、静态类型的编译语言,但是感觉上却是动态类型的解释型语言。

Go 1.3仍在向承诺的目标(更快、更简单)前进,主要改进包括:

  1. 改进了内存模型。在缓冲的channel发送和接收数据时增加了一条规则,使缓冲的channel可以被用作一个简单的信号灯(Semaphore)。
  2. 不再支持Windows 2000。微软在2010年时就不再支持Windows 2000,现在Go 1.3也放弃对它的支持。
  3. 支持BSD和Solaris系统。Go 1.3开始支持DragonFly BSD、FreeBSD、NetBSD、OpenBSD、Plan 9、Solaris,但对这些系统的支持都有一些其他特殊要求,比如对FreeBSD的支持必须要求内核编译时配置COMPAT_FREEBSD32参数。
  4. 支持 Native Client 虚拟机架构。Go 1.3既可以在32位Inter架构处理器上( GOARCH=386 )运行,也能在64位Intel架构上运行,但是在64位架构上使用的是32位pointer,对于ARM架构暂不支持。关于Native Client的介绍可以阅读其官方介绍
  5. 改进了栈的实现方式。将栈实现方式从分段(segmented)模型改为连续(contiguous)模型。当一个goroutine( Go 语言提供的一种用户态线程)需要更多的栈空间且超过了可用大小时,栈会被转移到一个单独的更大的内存块。
  6. 改进了垃圾回收机制。Go已经在堆上实现了精准的垃圾回收,Go 1.3增加了栈上的垃圾回收。另外,GC的速度也得到了提升,现在采用的是并发清除算法,可以缩短50-70%的GC中断时间。
  7. 重构了链接器。对链接器和编译器进行了重构,链接器仍然是使用C语言编写,但是指令选择阶段被移入到编译器中并创建了一个新的包liblink。指令选择只会在程序包被编译时执行一次,所以这这样可以加快大幅度提升大工程的编译速度。
  8. 其它的一些改进。比如实现了新的正则表达式引擎、更快的race detector、默认栈的大小从8K变为4K 字节、资源竞争的检测快了40%、增加了很多新参数等。

读者可以在这里下载Go 1.3。详细的改进说明可以阅读官方文档。不能翻墙的用户可以使用社区提供的镜像来下载。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

不错 by jiang changren

支持一下。

Intel Intel Intel Intel Intel Intel by wen bob

要专业啊

Re: Intel Intel Intel Intel Intel Intel by Guo Gary

笔误,谢谢反馈。

大师级 by 康 晓峰

很到位,继续努力

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

4 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT