这段文字讨论了优化前缀和(或扫描)操作,该操作计算数据集中值的累积总和。简单的迭代方法可以达到接近处理器最大速度,每秒处理数十亿个整数。然而,单指令多数据(SIMD)指令,例如ARM的NEON,*可以*提供进一步的改进。 最初使用朴素的SIMD实现尝试时,出乎意料地*慢于*标量方法。成功的关键在于处理更大的数据块——一次加载16个值,并并行执行局部前缀和。然后,再对这些局部和进行前缀和计算。 在苹果M4处理器上,这种“快速SIMD”方法达到了每秒89亿个值的速度,大约比标准的标量方法快2.3倍。该优化利用了交错加载和存储,以及用于向量运算的高效SIMD内联函数。
## Vite 8:性能大幅提升,采用 Rolldown
Vite 8 已稳定发布,这是自 Vite 2 以来最重要的架构更新。核心变化是采用了新的、统一的、基于 Rust 的打包工具 **Rolldown**,取代了先前的双打包系统(开发环境使用 esbuild,生产环境使用 Rollup)。这一转变带来了 **10-30 倍更快的构建速度**,同时保持了完全的插件兼容性。
在社区反馈的推动下——包括 Linear(快 83%)和 Beehiiv(快 64%)等公司报告的可衡量的构建时间缩短——Rolldown 提供了与 esbuild 相当的性能,并解锁了诸如完整打包模式和改进的拆分块等高级功能。
除了 Rolldown 之外,Vite 8 还引入了插件注册表(registry.vite.dev)、集成的开发者工具、内置的 TypeScript 路径别名支持,以及对关键插件(如 `@vitejs/plugin-react`)的更新。
Vite 承认自己欠 Rollup 和 esbuild 一份情,它们的基础对 Vite 的成功至关重要,并邀请贡献者进一步改进生态系统。对于大多数项目来说,升级预计会很顺利,并提供详细的迁移指南。