|
2
|
| Willem van der Veen · 技术社区 · 7 年前 |
|
|
1
1
如果你能把某个Javascript功能编译成Wasm 跑得更快。与其他动态语言相比,JavaScript运行得非常快,因为(大多数)浏览器将其编译为一个低级字节码,该字节码被解释得非常快(甚至在本机上运行)。Wasm被设计为非常接近字节码,因此在最好的情况下JS和“JS的一个子集,其类型被编译为Wasm”以相同的速度运行(如果两个编译器都做得很好)。但是:
2) JavaScript必须经过优化才能如此快速地运行,而且由于它不知道变量和属性的类型/生存期,因此在引擎找到编译它的最佳方法之前,它需要一段时间,因此这个优化过程需要时间。(热身时间)。 也就是说,由于各种原因,您不能将大多数JavaScript或TypeScript转换为Wasm(这就是AssemblyScript是TS的一个子集的原因):
(一)
2) JavaScript有垃圾回收。 |
|
|
2
3
现实的答案是:不。对打字有一些常见的误解。一是它的动态性不如JavaScript。这不是真的,事实上它和JS一样是动态的,因为它包含了JavaScript的所有语义(包括所有疯狂的角落情况),而且它的类型系统太弱和不健全,无法保证普通的离线编译器可以用于静态优化。最多,这些类型可以用作 动态VM可以尝试首先进行优化,因为它很清楚它们可能是不正确的。
|
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 8 月前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 8 月前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 8 月前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 8 月前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 9 月前 |