WebAssembly 比 JavaScript 执行更快的原因

luoyjx · 2019-03-27 20:12 · 196次阅读

WebAssembly 比 JavaScript 执行更快是因为:

  1. 文件抓取阶段,WebAssembly 比 JavaScript 抓取文件更快。即使 JavaScript 进行了压缩,WebAssembly 文件的体积也比 JavaScript 更小;
  2. 解析阶段,WebAssembly 的解码时间比 JavaScript 的解析时间更短;
  3. 编译和优化阶段,WebAssembly 更具优势,因为 WebAssembly 的代码更接近机器码,而 JavaScript 要先通过服务器端进行代码优化。
  4. 重优化阶段,WebAssembly 不会发生重优化现象。而 JS 引擎的优化假设则可能会发生“抛弃优化代码重优化”现象。
  5. 执行阶段,WebAssembly 更快是因为开发人员不需要懂太多的编译器技巧,而这在 JavaScript 中是需要的。WebAssembly 代码也更适合生成机器执行效率更高的指令。
  6. 垃圾回收阶段,WebAssembly 垃圾回收都是手动控制的,效率比自动回收更高。 这就是为什么在大多数情况下,同一个任务 WebAssembly 比 JavaScript 表现更好的原因。
收藏

暂无评论

登录后可以进行评论。没有账号?马上注册