WebAssembly 的 Memory64:速度与内存的权衡

2025-01-16
WebAssembly 的 Memory64:速度与内存的权衡

WebAssembly 最近引入了 Memory64,支持 64 位指针。然而,令人意外的是,Memory64 并没有带来性能提升,反而由于硬件、操作系统和 WebAssembly 本身的设计限制,导致运行速度比 32 位模式慢 10% 到 100% 以上。这是因为 32 位模式下浏览器可以预留 4GB 内存,从而避免边界检查,而 64 位模式下则必须进行边界检查,这带来了额外的计算开销。因此,除非需要超过 4GB 内存,否则 Memory64 并非最佳选择。未来,硬件和 WebAssembly 的改进可能提升 Memory64 的性能。

阅读更多
开发 Memory64

75 倍加速:优化 Ion 编译器后端

2024-10-16
75 倍加速:优化 Ion 编译器后端

Mozilla 工程师通过一系列优化措施,大幅提升了 Firefox 浏览器中 Ion 编译器后端的性能。文章重点介绍了优化虚拟寄存器活动范围、采用 Semi-NCA 算法、使用稀疏位集以及加速移动指令解析等关键改进,最终将 Ion 编译大型 WebAssembly 模块(如 ONNX Runtime 和 Adobe Photoshop)的速度提升了 75 倍以上。此外,文章还展望了未来改进 WebAssembly 性能的计划,包括按需编译和内联等。

阅读更多
未分类