Go文档:Release History(发布历史)

本文更新于2024-09-09。

官方文档:https://go.dev/doc/devel/release

泛型

go1.23.0 (2024-08-13)

  • 增加遥测数据上报。
  • 使用PGO编译的耗时从增加100%以上优化至个位数。
  • Timer和Ticker未被引用时即可被垃圾回收,不需等待Stop。
  • 增加unique、iter、structs包。

go1.22.0 (2024-02-06)

  • 每次range循环创建新变量。
  • CPU性能提升1–3%,内存减少约1%;启用PGO可提升2-14%。
  • 增加math/rand/v2包。
  • 增强net/http.ServeMux的路由功能。

go1.21.0 (2023-08-08)

  • 增加min、max、clear内置函数。
  • 明确包初始化顺序。
  • 增加log/slog、slices、maps、cmp包。

go1.20 (2023-02-01)

  • 编译支持PGO。

go1.19 (2022-08-02)

go1.18 (2022-03-15)

  • 引入泛型。
  • 模糊测试。
  • 支持工作区。
  • 切片扩容算法的大小分界从1024改为256。

模块

go1.17 (2021-08-16)

  • 完善模块机制。
  • 程序运行时性能提升5%,二进制程序体积减少2%。

go1.16 (2021-02-16)

  • 模块感知模式默认启用。
  • 支持内嵌文件。
  • 链接速度加快20-25%,内存减少5-15%,使Go链接器更现代化。
  • 弃用io/ioutil包。

go1.15 (2020-08-11)

  • 二进制程序体积减少5%。
  • 链接器速度加快20%,内存减少30%,使Go链接器更现代化。

go1.14 (2020-02-25)

  • 模块机制可用于生产。
  • 引入RISC-V支持。
  • defer几乎零开销。
  • 重新实现定时器。

go1.13 (2019-09-03)

  • 改进数值字面量语法。
  • 完善模块机制。
  • defer性能提高30%。
  • errors包增加函数As、Is、Unwrap。

go1.12 (2019-02-25)

  • 完善模块机制。

go1.11 (2018-08-24)

  • 引入WebAssembly支持。
  • 引入模块机制。

go1.10 (2018-02-16)

  • 构建缓存。
  • 测试缓存。

重写编译器和运行时

go1.9 (2017-08-24)

  • 类型别名。
  • 并行编译。
  • 使用单调时钟。

go1.8 (2017-02-16)

  • 编译器和链接器速度提升15%。
  • 支持插件。
  • GC通常低于100毫秒,平常低于10毫秒。
  • defer的开销减半。
  • Go调用C的开销减半。
  • 支持HTTP/2推送。

go1.7 (2016-08-15)

  • 正式支持vendor。
  • 编译器加入SSA。
  • 程序运行时CPU提升5-35%,二进制程序体积减少20-30%。
  • 增加context包。

go1.6 (2016-02-17)

  • 定义CGo在Go和C之间共享指针的规则。
  • 支持HTTP/2。

go1.5 (2015-08-19)

  • 正式支持internal内部包。
  • 自举,完全替换C代码。
  • 重写编译器和运行时,不再使用6g/8g、6a/8a、6l/8l等工具链。
  • stop the world基本在10毫秒以下。
  • 可编译动态共享库。

Go 1

go1.4 (2014-12-10)

  • 协程创建时的栈大小从8K改为2K。
  • 支持规范化的导入路径。

go1.3 (2014-06-18)

  • 垃圾收集器更精确。

go1.2 (2013-12-01)

  • 协程创建时的栈大小从4K改为8K。

go1.1 (2013-05-13)

go1 (2012-03-28)

  • Go 1兼容性保证。

非正式版本

posted @ 2024-04-13 19:17  garvenc  阅读(69)  评论(0编辑  收藏  举报