从慢速到 SIMD: 一个 Go 优化的故事

鸟窝 at 
从慢速到SIMD: 一个Go优化的故事的配图
SourceGraph 的工程师 Camden Cheek 提供的一个利用 SIMD 进行 Go 性能优化的故事:From slow to SIMD: A Go optimization story。这是一个关于某函数的故事,这个函数被大量调用,而且这些调用都在关键路径上。让我们来看看如何让它变快。剧透一下,这个函数是一个点积函数。点积(Dot Product),也称为内积或数量积,是一种数学运算,通常用于计算两个向量之间的乘积。点积的结果是一个标量(即一个实数),而不是一个向量。假设有两个向量:$$\mathbf{a}=\begin{bmatrix}a_1\\a_2\\\vdots\\a_n……