图片 1

图片 2

Google 的 Go语言在下一个版本将提升性能,编译和扩展大型代码库。 Go 1.9
应该在 8 月份发布。

本次更新还照顾到了移动设备端,比如iPhone和iPad架构端口、以及同Go移动项目的连接,就为Android和iOS的开发敞开了大门。

今日,Google官方终于发布了Go
1.5版本,这是Go语言的第六个重要版本。该版本在本次更新中移除了“最后残余的C代码”,Runtime、Compiler和Linker均是由Go语言所编写。目前,Go
1.5现已开放下载并支持Windows、Mac OS
X和Linux平台。主要特性如下:编译器和运行时已完全使用Go编写,彻底移除C语言;垃圾收集器现可并行运行,显著降低了收集器的停顿时间;Go程序默认以最大可用内核数量运行,之前版本中默认为1;所有资源库现已支持内部包,而不仅仅是Go的核心部分;go命令现提供对“vendoring”外部依赖的“实验性支持”;新加入的go指令追踪工具可对程序执行细粒度良好的追踪;新加入的go
doc指令可在命令行中专门使用。改进 linker,允许分布式 Go
包作为分享库链接到 Go 程序,可以构建 Go
包到归档或者分享库,可以链接或者通过 C 程序加载 (design
doc)。更多详细内容,请见:Go官方主页、下载Go 1.5。

Go 1.9
的创作者希望几乎所有Go程序都像以前一样运行,他们的关注点依然是最新版本中保持兼容性。

除了速度上的改进,Go
1.5还增加了对内部包的支持,允许包内的分享和部署细节。下面是Google在发行说明中提到的重点内容:

这是新功能和改进:

  • 垃圾收集器加速,生成更好的代码以及核心库优化应该会使程序运行速度更快一些;
  • math/bits 包,这是一个新包,它对操作 bits
    进行了优化。该包中的函数被编译器视为内联函数来提高性能;
  • Go 1.9 编译器支持并行编译包中的函数,利用多个处理器内核。Go 1.9
    保留以前版本的 go
    命令支持并行编译单独的包。默认情况下,并行编译是打开的,但可以禁用。
  • 为了可扩展性,Go 1.9 增加了对代码修复的 类型别名 的支持。对 Go
    语言的更改,类型别名支持代码的渐进式修复,同时支持在程序包之间移动类型。它应该在大规模重构期间辅助代码修复,将引用就包中的类型改为引用新包的类型,这两个类型是一致的。基本上,类别别名的引入提供了一个过渡期,其中
    API 可以从新的和旧的包中获得,引用旧的和新的版本可以同时存在。
  • Go 1.9 增加了透明单调递增时间(transparent monotonic
    time)支持,这使得在两个时间值之间的计算持续时间总是安全的,即使是在时钟调整的情况下。相关链接:package
    docs、design
    document
  • Go 1.9 改进了测试能力,新的 (T).Helper 和 (B).Helper
    方法将调用函数标记为测试 helper 函数。
    当打印文件和行信息时,该函数将被跳过。 这允许写测试 helper
    函数,同时仍然为用户提供有用的行号。
  • sync 包中的新 Map 类型,具有分期偿还 –
    常数时间加载,存储和删除的并发 Map。多个 goroutines
    可以安全并发的调用它。
    更多信息,请阅读Go1.9特性文档


编译器和运行时已完全使用Go编写(外加一点点的汇编),C语言编译器已被彻底摒弃;

• 垃圾收集器现可并行运行,并且显著降低了暂停时间;

• Go程序默认以最大可用内核数量运行(GOMAXPROCS
set),之前版本中默认为1;

• 所有资源库(repositories)现已支持内部包,而不仅仅是Go的核心部分;

• go命令现提供对“vendoring”外部依赖的“实验性支持”;

• 新加入的go指令追踪工具可对程序执行细粒度良好的追踪;

• 新加入的go doc指令(与godoc有区别)可在命令行中专门使用。

Go 1.5现已开放下载并支持Windows、Mac OS
X和Linux平台,除了二进制文件,感兴趣的开发者也可以直接下载源代码(传送门)。

[编译自:BetaNews ,
来源:Google]