Go 1.27 将默认开启 SIMD for amd64,可移植 SIMD 包提案出炉
本文永久链接 – https://tonybai.com/2026/04/29/go-1-27-default-simd-for-amd64-portable-simd-proposal 大家好,我是Tony Bai。 过去十年,Go 语言以其惊人的简洁和强大的并发能力,席卷了整个云原生领域。但在这片繁荣之下,一个尴尬的“阿喀琉斯之踵”,始终困扰着所有追求极致性能的 Gopher: ...
本文永久链接 – https://tonybai.com/2026/04/29/go-1-27-default-simd-for-amd64-portable-simd-proposal 大家好,我是Tony Bai。 过去十年,Go 语言以其惊人的简洁和强大的并发能力,席卷了整个云原生领域。但在这片繁荣之下,一个尴尬的“阿喀琉斯之踵”,始终困扰着所有追求极致性能的 Gopher: ...
本文永久链接 – https://tonybai.com/2025/11/06/proposal-simd-cpu-feature-vet-check 大家好,我是Tony Bai。 Go 1.26 将于11月份功能特性冻结,其最令人期待的实验特性之一,无疑是simd 包的引入。它承诺为 Go 开发者解锁 SIMD (Single Instruction, Multiple Data) 的强大能力,让我们能编写出榨干现代 CPU 向量化计算潜能的高性能代码。然而,在这片兴奋的浪潮之下,一个不和谐的声音却悄然响起,而这个声音,来自 Go 语言的联合创始人之一——Rob Pike。 ...
本文永久链接 – https://tonybai.com/2025/10/16/cpu-cache-friendly-in-go 大家好,我是Tony Bai。 “现代 CPU 很快,而内存很慢。” 这句看似简单的陈词滥调,是理解现代高性能编程的唯一“真理”。我们常常致力于优化算法的时间复杂度,却忽略了一个更为根本的性能瓶颈:数据在内存和 CPU 缓存之间的移动。一次 L1 缓存的命中可能仅需数个时钟周期(~1ns),而一次主内存的访问则需要超过上百个周期(~100ns),这之间存在着超过 100 倍的惊人差距(2020年数据,如下图,近些年内存速度提升,但与L1缓存相比依旧有几十倍的差距)。 ...