Go 1.21 发布首个 RC,正式版将在 8 月前推出
Go 1.21 首个 RC 已发布。
虽然这是 Go 1.21 的第一个 RC,但它的版本号却是
go1.21rc2
。因为开发团队在为 RC1 打上 tag 后就发现了一个 bug,所以他们马上基于该版本进行了修复并发布更新。
Go 1.21 主要变化
改进工具链
- 配置文件引导优化 (PGO) 功能正式 GA。
在 1.20 中处于预览阶段的启用配置文件引导优化 (PGO) 功能现已正式 GA。如果主软件包目录中存在名为default.pgo
的文件,go
命令将使用它来启用 PGO 构建。
Go 开发团队测试了 PGO 对多种 Go 程序的影响,发现性能提高了 2-7%。
语言变更
- 添加新的内置函数:min, max 和 clear
- 对泛型函数的类型推断进行了多项改进,包括扩展和解释清楚规范中类型推断的描述
- 在未来版本中,开发团队计划解决 Go 编程中最常见的问题之一:循环变量捕获 (loop variable capture)。Go 1.21 附带了此功能的预览版,目前可以使用环境变量在代码中启用该功能。
点此查看详情
添加新的标准库
-
log/slog 包:用于结构化日志记录
-
slices 包:增用于对任何元素类型的切片进行常见操作,这个包比 sort 包更快、更符合人体工程学
-
maps包:用于对任何类型 key-value 进行常见操作
-
cmp 包:用于比较有序值 (ordered values)
优化性能
除了启用 PGO 时的性能改进之外:
- Go 编译器本身已经在 1.21 中启用 PGO 进行了重建,因此它构建 Go 程序的速度提高了 2-4%,具体取决于主机架构
- 由于垃圾收集器的调整,某些应用程序的尾部延迟可能会减少高达 40%
- 现在使用 runtime/trace 收集跟踪在 amd64 和 arm64 上产生的 CPU 开销要小得多
支持 WASI
Go 1.21 已实验性支持 WebAssembly System Interface (WASI), Preview 1 (GOOS=wasip1
,GOARCH=wasm
)。
为了方便编写更通用的 WebAssembly (WASM) 代码,编译器还支持从 WASM 主机导入函数的新指令: go:wasmimport
。
延伸阅读

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
NestJS v10 发布,速度提升 20 倍
NestJS 是一个 TypeScript Node.js 框架,帮助你建立企业级高效和可扩展的 Node.js 应用程序。 近日 NestJS v10 正式发布。这个版本带来了大量的错误修复、改进和新功能。 SWC SWC(Speedy Web Compiler)是一个基于 Rust 的可扩展平台,将 SWC 与 Nest CLI 一起使用可以大大加快你的开发过程。SWC 大约比默认的 TypeScript 编译器快 20 倍。 在 NestJS v10 中,你可以通过简单地将-b swc标志传递给nest start命令来使用 SWC,如下所示: 在测试中重写模块 NestJS 10 引入了一个新功能,允许你在测试中重写模块。当你想一次性模拟整个模块而不是单独模拟每个时,这个功能特别有用。 Test.createTestingModule({ ...}) .overrideModule(LoggerModule) .useModule(LoggerTestingModule) .compile(); Redis 通配符订阅 在 NestJS v10 中,增加了对 Redis ...
- 下一篇
Spring Modulith 1.0 M1 发布
Spring Modulith 1.0 M1现已正式发布。Spring Modulith是一个新的、实验性的 Spring 项目,支持开发人员在 Spring Boot 应用程序中实现逻辑模块,它允许应用结构验证、记录模块安排、为单个模块运行集成测试、在运行时观察模块交互,以及以松散耦合的方式实现模块交互。 这是该项目一个重要的里程碑,也是将其从一个实验性项目提升为 Spring 官方项目的第一步。因此,新版本包含了一些破坏性变更: 组标识符现在为org.springframework.modulith(以前是org.springframework.experimental)。 项目的 Spring Boot baseline 是 3.1(之前是 3.0)。 将执行器端点的重命名为application-modules(以前是applicationmodules)。 基于 JDBC 的事件注册表中先前已弃用的配置属性已被删除。 里程碑版本需要从 Artifactory 仓库获得,地址是https://repo.spring.io/milestone。该版本还包括一些错误修复和相较 0....
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- Mario游戏-低调大师作品
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境