一个违反直觉的结果:我的 SoA 比 AoS 更慢

发布时间:2026/6/6 12:27:57

一个违反直觉的结果:我的 SoA 比 AoS 更慢 一个违反直觉的结果:我的 SoA 比 AoS 更慢学习性能优化的人,几乎都会接触到一个经典结论:AoS 不利于 Cache。SoA 更适合 SIMD。SoA 通常比 AoS 更快。因此,当我最近准备写一个 SIMD Benchmark 时,我理所当然地认为结果应该是:AoS SoA AVX2换句话说:AoS 最慢。SoA 更快。AVX2 最快。然而实验结果却让我愣住了。测试结果如下:AoS Update : 3.18 ms SoA Update : 4.28 ms AVX2 Update : 1.48 ms最令人意外的不是 AVX2。而是:SoA 居然比 AoS 更慢。测试内容测试的数据结构非常简单。AoS:structParticleAoS{floatx;floaty;floatz;floatvx;floatvy;floatvz;};更新逻辑:particles[i].x+=particles[i].vx*dt;particles[i].y+=particles[i].vy*dt;particles

相关新闻