Go 1.21 已正式发布。
该版本大部分变化集中在工具链、运行时和库的实现。与往常一样,该版本保持了 Go 1 的兼容性承诺;事实上,Go 1.21 改进了这一承诺。开发团队希望几乎所有 Go 程序都能像以前一样继续编译和运行。
此外,Go 1.21 对版本编号进行了一个小更改。
(资料图片仅供参考)
过去使用 Go 1.N 来指代整个 Go 语言版本和版本系列,以及该系列中的第一个版本。从 Go 1.21 开始,第一个版本现在是Go 1.N.0。最新发布的是 Go 1.21 语言及其初始实现 Go 1.21.0 release。
像go version
这样的工具会将版本号显示为"go1.21.0
"。有关新版本编号的详细信息,请参阅"Go Toolchains"文档中的“Go versions”。
下载地址:https://go.dev/dl/
在 1.20 中处于预览阶段的启用配置文件引导优化 (PGO) 功能现已正式 GA。如果主软件包目录中存在名为default.pgo
的文件,go
命令将使用它来启用 PGO 构建。
Profile-guided optimization (PGO) 是计算机编程中的一种编译器优化技术,翻译过来是使用配置文件引导的优化。
PGO 也被称为:
Profile-directedfeedback (PDF)
Feedback-directed optimization (FDO)
它的原理是编译器使用程序的运行时 profiling 信息,生成更高质量的代码,从而提高程序的性能。
PGO 作为一项通用的编译器优化技术,不局限于某一门语言。比如Rust 编译器也在探索使用 PGO,微软则采用LTO+PGO 来优化 Linux 内核。
在 Go 语言中,最初关于 PGO 的提案是建议向 Go GC 工具链增加对配置文件引导优化 (PGO) 的支持,以便工具链能根据运行时信息执行特定于应用程序和工作负载的优化。
Go 开发团队测试了 PGO 对多种 Go 程序的影响,发现性能提高了 2-7%。
更多详细信息查看 PGO 文档。
go
tool同时向前和向后兼容语法 log/slog 包:用于结构化日志记录
slices 包:增用于对任何元素类型的切片进行常见操作,这个包比 sort 包更快、更符合人体工程学
maps 包:用于对任何类型 key-value 进行常见操作
cmp 包:用于比较有序值 (ordered values)
除了启用 PGO 时的性能改进之外:
Go 编译器本身已经在 1.21 中启用 PGO 进行了重建,因此它构建 Go 程序的速度提高了 2-4%,具体取决于主机架构 由于垃圾收集器的调整,某些应用程序的尾部延迟可能会减少高达 40% 现在使用runtime/trace收集跟踪在 amd64 和 arm64 上产生的 CPU 开销要小得多Go 1.21 已实验性支持WebAssembly System Interface (WASI), Preview 1 (GOOS=wasip1
,GOARCH=wasm
)。
为了方便编写更通用的 WebAssembly (WASM) 代码,编译器还支持从 WASM 主机导入函数的新指令:go:wasmimport
。
详情查看发布说明。
延伸阅读
Go 开发团队讨论创建 math/rand/v2:引入新 API、标准库首个 v2 版本包上一篇:多场医药会议延期,原因恐不简单,医药反腐击中药价“七寸”
下一篇:最后一页
河北20条措施助力开放发展先行区建设
2023年01月06日公告发布
红薯一定不能生吃,尤其是肠胃不适的人更不能生吃红薯。因为红薯中淀粉含量多,淀粉中的淀粉颗粒如果不经高温破坏,很难被人体消化,所以吃红
在12月31号晚上这天,打开朋友圈大家都在告别2022、迎接2023,我却想不到任何值得发的内容。没有外出体会元旦的节日氛围,也没有观看任何跨年活动
1月5日A股收盘,沪指涨1 01%,报收3155 22点;深成指涨2 13%,报收11332 01点;创业板指涨2 76%,报收2399 46点。三大指数今日高
*ST天马(002122)01月03日在投资者关系平台上答复了投资者关心的问题。
1月6日,嘉实基金公告,嘉实京东仓储物流封闭式基础设施证券投资基金(简称:嘉实京东仓储基础设施REIT)公众投资者认购总量已超过公众发售总量
X 关闭
X 关闭