WebAssembly 正式成为 W3C 标准,前端环境会有什么变化

近日 WebAssembly 正式被 W3C 列为正式标准,有读者就来问我这个变化会为前端开发者带来什么改变。

先说结论,其实对大家来说基本是没有影响的,为什么这么说呢?我们先来了解下 WebAssembly 到底是什么东西。

WebAssembly 是一种字节码格式,可以从 C 、Go、Java 等语言编译而来,并能在浏览器上执行。

因为 WebAssembly 是字节码格式,所以它也就无需通过 Parser 和 ByteCode Compiler 来优化代码了,性能相比 JS 会快很多。可能有读者不清楚这两个是什么玩意,先来解释下。假如你 JS 代码在 Chrome 中运行的话,会被 V8 引擎的 Parser 解析一遍。然后当某些代码多次执行过后 ByteCode Compiler 会参与进来,帮助你优化这部分多次执行的代码。当代码编译成 ByteCode 时执行起来会快很多。如果你想了解更多的内容可以网上搜一下 V8 引擎中关于性能优化的文章。

因此在计算量大的场景下这类格式会有很大的作用,比如说视频 / 图像处理、游戏、3D 处理等场景都会大放异彩,并且这种提升能直接带来的好处是:原本需要在后端处理的一些东西完全可以搬到前端,这样性能又能够得到进一步的优化。

另外你也可以在 W3C 成员的一些发言中了解到这个技术确实会将浏览器执行代码的性能提升一个量级。

这时候你可能会有个疑问,既然 WebAssembly 性能这么好,它会不会有机会取代掉 JS?对于这个问题来说,个人认为可能性很小。

因为大部分场景下 Web 应用并不需要大的计算量,制约它性能的往往是网络环境而不是单纯的代码执行速度。并且 WebAssembly 的兼容性也并不好,除了能给某些特定场景带来不错的提升以外,个人认为并不会取代 JS。

最后

前端的技术日新月异,你经常可以听到前端又出了一个什么新的技术。在这样快速的发展中,我们难免会困惑自己是否跟得上前端这辆快速前进的车。

其实大家大可不必自乱阵脚,很多东西完全可以抱着他出任他出的想法,完全没有必要每个新知识都花费大量的时间去学习。对于这类新技术而言,我个人的态度一般都是以下几个步骤:

  • 它是什么
  • 为什么要有它
  • 好处是什么

了解完这三步就可以了,其余的东西当我真要去使用这门技术的时候再去了解也不迟,毕竟人的精力就那么多。与其把精力分散在各处,不如集中几处深挖。

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章