Skip to content

Commit eba80e9

Browse files
committed
update
1 parent 5aa21c3 commit eba80e9

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

WebAssembly-编译目标/WebAssembly-编译目标.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,26 @@
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+

0 commit comments

Comments
 (0)