主页

索引

模块索引

搜索页面

3.6.5. go1.15 (released 2020/08/11)

Most of its changes are in the implementation of the toolchain, runtime, and libraries.

受疫情影响,这次版本变化的内容不太多,但如期发布了。

Go 1.15 包括对链接器的重大改进,改进了对具有大量内核的小对象的分配,并弃用了 X.509 CommonName。GOPROXY 现在支持跳过返回错误的代理,并添加了新的嵌入式 tzdata 包。

1. 新的链接器

  • 官方的设计文档地址:https://golang.org/s/better-linker

  • 此版本 Go 可减少链接器资源的使用(时间和内存)并提高代码的健壮性/可维护性。对于在 amd64 架构上运行的基于 ELF 的操作系统(Linux,FreeBSD,NetBSD,OpenBSD,Dragonfly 和S olaris),代表性的大型 Go 程序集的链接速度提高 20%,平均所需内存减少 30%。其他体系结构/OS 组合的改进。

2. 编译器改进

  • 包 unsafe 的安全规则允许在调用某些函数时将 unsafe.Pointer 转换为 uintptr。

  • 与 Go 1.14 相比,Go 1.15 通过消除某些类型的 GC 元数据和更积极地消除了未使用的类型元数据,与 Go 1.14 相比将典型的二进制大小减少了大约 5%。

3. 内嵌 tzdata

增加了一个新包:time/tzdata,当系统找不到时区数据时(比如 Windows 等),通过导入这个包,在程序中内嵌时区数据,也可以通过编译时传递 -tags timetzdata 来实现同样的效果。

4. 增加 testing.TB.TempDir

5. 增加 testing.T.Deadline

6. 关于 Ports 部分

darwin/386、darwin/arm 不再支持;riscv64 变得更好;linux/arm64 现在作为第一类 port 支持

7. API 的变动

8. 工具链

9. 性能

主页

索引

模块索引

搜索页面