澳门新葡亰信誉平台游戏Go 1.9发布 支持渐进式代码重构

by admin on 2020年4月11日

Go 1.9 的开发团队希望几乎所有的 Go
程序都能像以前一样运行,该版本的重点是在保持兼容性的前提下,提升性能,编译和扩展大型代码库。正式版本预计
8 月发布。

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

引用原文:Go 1.9 is released作者:Francesc
Campoy翻译:VincentGo团队于2017年8月24日声称即将发布Go
1.9版本。用户可以从这里进行下载。新版本做了很多调整,本文只介绍了最重要的部分。新版本最大的调整就是引入了type
alias:该功能使得Go语言可以支持渐进式代码重构。math/bits的新包无符号整数的位计数和操作功能,如果可能的话,由特殊CPU指令实现。例如,在x86-64位操作系统上,bits.TrailingZeros(x)使用了BSF指令。sync包添加了新的Map类型,并发访问的安全性也提高了。用户想要了解更多,可以查询文档,从而可以更加深刻地理解为什么说它的诞生是从GopherCon
2017闪电演讲得到灵感的。testing包也作了新的调整。新的Helper方法添加到
testing.T 和
testing.B,让调用函数成为测试的辅助函数。当测试包打印文件和线的信息,它显示调用helper函数的位置而不是在帮助函数本身的线。。现在time包可以透明地跟踪每个时间值的
monotonic
time,使两个时间之间的差值计算不受墙上时钟调整的影响更多介绍请详见包文档和设计文档。最后,Go
1.9版本将同时在一个包中编译函数,这也使得编译速度变得更快了。1.9版本添加很多功能,同时也改进和修复了很多问题。用户可以在1.9版本中查看所有的调整点,以及关于上面提到的更多的内容。

新特性和改进:

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

  • 垃圾收集器加速,更好的代码和核心库优化将使程序运行速度更快一些。

  • math/bits 包,对操作 bits
    进行了优化。该包中的函数被编译器视为内联函数来提高性能。

  • Go 1.9 编译器支持并行编译包中的函数,利用多个处理器内核。Go 1.9
    保留以前版本的 go
    命令支持并行编译单独的包。默认情况下,并行编译是打开的,但可以禁用。

  • 为了可扩展性,Go 1.9 增加了对代码修复的类型别名声明(type-alias
    declaration)的支持。对 Go
    语言的更改,类型别名支持逐行代码修复,同时支持在程序包之间移动类型。它应该在大规模重构期间辅助代码修复,将引用旧包中的类型改为引用新包的类型,并可互操作。基本上,类别别名的引入提供了一个过渡期,其中
    API 可以从新的和旧的包中获得,引用旧的和新的版本可以同时存在。

  • Go 1.9 增加了透明单调递增时间(transparent monotonic
    time)支持,这使得在两个时间值之间的计算持续时间总是安全的,即使是在时钟调整的情况下。

  • Go 1.9 改进了测试能力,用新的 (T).Helper 和 (B).Helper
    方法将调用函数标记为测试 helper 函数。

  • sync 包中的新 Map 类型,这是一个具有 amortized-constant-time
    加载、存储和删除的并发 Map。多个 goroutines 可以安全并发的调用它。

这是新功能和改进:

  • 垃圾收集器加速,生成更好的代码以及核心库优化应该会使程序运行速度更快一些;
  • 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特性文档

澳门新葡亰信誉平台游戏 1

(文/开源中国)    

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图