File tree Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change 1010
1111[ WebAssembly] ( https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts )  是一种能把** 除了JavaScript** 以外的编程语言编写的代码经过编译器编译转换为能在现代浏览器中运行的代码的技术。
1212
13+ ![ webassembly.org/css/webassembly.svg] ( https://webassembly.org/css/webassembly.svg ) 
14+ 
15+ 
16+ 
1317
1418
1519### 为什么WebAssembly比JavaScript更快?  
1620
1721就如第一部分所提,` WebAssembly ` 的性能优势是针对 JavaScript 而言的,下面我们分别从 JavaScript 和 WebAssembly 的执行过程一一对比优势到底在哪:
1822
1923![ js-wb-excute] ( D:\GitHub\JavaScript\WebAssembly-编译目标\WebAssembly为什么快.png ) 
24+ 
25+ ** 简间来说,** JavaScript 代码一般是人写的,而 WebAssembly 是由编译器编译出来的,是直接针对机器产生的代码,会包含更多对机器性能优异的指令(instructions),这部分差异针对不同的功能代码 WebAssembly 可能会比 JavaScript ** 快 10%~ 800%** 。
26+ 
27+ ** 总的来说,大多数场景下 WebAssembly 比 JavaScript 性能更好是因为:** 
28+ 
29+ -  WebAssembly 代码更小的体积;
30+ -  解码 WebAssembly 比解析转译 JavaScript 用的时间更少;
31+ -  优化 WebAssembly 的用时比优化 JavaScript 的更短,因为前者是已经经过一次编译优化并且面向机器的代码;
32+ -  WebAssembly 没有重优化这个过程;
33+ -  WebAssembly 包含对机器更友好的指令;
34+ -  JavaScript 无法人为控制垃圾回收,而 WebAssembly 可以有效控制内存回收的时机;
35+ 
                         You can’t perform that action at this time. 
           
                  
0 commit comments