Go 1.19 改进了泛型、内存模型



Go 1.19 是 Google 的 Go (Golang) 编程语言的最新版本,现已投入生产。此更新改进了最近添加的泛型并首次推出了增强的内存模型。
在 8 月 2 日发布的 Go 1.19 中,泛型开发专注于解决社区报告的微妙问题和极端案例以及性能改进(在某些泛型程序中高达 20%)。 Go 1.
18 将长期寻求的泛型功能添加到该语言中,该语言于 3 月发布。 与此同时,Go 内存模型现在明确定义了 sync/atomic 包的行为,为实现同步算法提供了低级原子内存原语。修改了之前发生关系的正式定义,以与 C、C++、Java、JavaScript、Rust 和 Swift 使用的内存模型保持一致。
现有程序不受影响。除了内存模型更新之外,sync/atomic 包中还有新的类型,例如 atomic.int64 和 atomic.
Pointer(T),让原子值的使用更加容易。 Go 1.19 可以从 go.
dev 下载,适用于 Windows、macOS 和 Linux。 Go 1.19 中的其他功能: 垃圾收集器中添加了软内存限制。
该限制有助于优化 Go 程序,使其在具有专用内存量的容器中尽可能高效地运行。 性能和实现改进包括协同程序堆栈的动态大小以减少堆栈版权保护、在大多数 Unix 系统上自动使用附加文件描述符、在 x86-64 和 ARM64 上用于大型 switch 语句的跳转表,以及支持 ARM64 上的调试器注入函数调用。 对方法声明中的类型参数进行了小幅修正。
现有程序不受影响。 文档注释现在支持链接、列表和标题语法,以帮助用户编写更清晰的文档注释,尤其是在具有大型 API 的包中。 为了安全起见,os/exec 包不再尊重 PATH 查找中的相对路径。
当目标操作系统是任何类似 Unix 的操作系统时,新的构建约束 unix 就会得到满足。 版权所有 © 2022 IDG Communications, Inc. 如何选择低代码开发平台。

Yorumlar

Bu blogdaki popüler yayınlar

只需50美元即可训练成为一名熟练的Python编码器

DataStax 使 Astra 流媒体服务普遍可用

TypeScript 4.1 Beta带来了模板文字类型