pdh*_*710 5 javascript optimization v8 typescript
我阅读了以下有关 V8 引擎和 javascript 优化的文章。
JavaScript 的工作原理:V8 引擎内部 + 5 个关于如何编写优化代码的技巧
根据上面的文章,推荐这些:
A。V8引擎使用隐藏类以及隐藏类和属性的缓存机制。所以避免动态添加对象属性,也避免动态改变属性的类型。而是使用对象构造函数。
b. V8引擎对常用功能进行了更多优化。因此,请避免生成仅执行一次的许多不同的相似表单函数。相反,编写代码来重复执行相同的函数。
然后,我有3个问题:
我。'a'和'b'可以应用于其他浏览器的javascript引擎,例如firefox的SpiderMonkey吗?
二. 根据“a”的说法,使用 typescript 对 v8 引擎优化更有优势?(使用 typescript,您可以生成具有较少动态变化对象和属性的 javascript 代码)
三. 现代 JavaScript 代码使用大量具有类似形式的内联和匿名函数,如下面的示例代码。根据“b”,使用单个预定义函数更有利?(此示例代码非常简化,用于显示多次使用的类似表单函数)
prm.then((res) => {
console.log(res);
}).then((res2) => {
console.log(res2);
}).catch((err) => {
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
首先你的头衔很弱。标题应该几乎是问题的形式。例如:“是否可以优化 JavaScript 引擎的代码?”
'a'和'b'可以应用于其他浏览器的javascript引擎,例如firefox的SpiderMonkey吗?
当然可以,但这取决于这些引擎的开发人员是否这样做。我认为在这里问这个问题没有任何好处。
根据“a”的说法,使用 typescript 对 v8 引擎优化更有优势?
Typescript 被编译成 Javascript。V8 是一个 Javascript 引擎,因此相信 Typescript 的编译器正在为 V8 做任何不同的事情,或者 V8 正在做任何优化,因为它神奇地知道 Javascript 来自 Typescript,任何优势充其量都只是猜测(除非有人是熟悉代码的人都知道)。
由于 TypeScript 编译器无论如何都在尝试编写良好/优化的 Javascript 代码,因此 V8 只是利用了良好的代码。任何人都可以写出好的 Javascript,只是写出糟糕的 TypeScript 就更难了。但值得注意的是,由于 Typescript 每次都以相同的方式编译代码,V8 可以利用这一点,但只有当程序员喜欢用 Typescript 编写时,它才有用。
现代 JavaScript 代码使用大量具有类似形式的内联和匿名函数,如下面的示例代码。根据“b”,使用单个预定义函数更有利?
优势体现在哪些方面?
您的匿名函数很可能已经编译出来,因为console.log()它是唯一被调用的函数,并且可以轻松内联。所以这确实是一个很糟糕的例子。
至于更复杂的函数,编写单个函数已经是一个必须遵守的好原则(Don't Repeat Yourself - DRY)。因此,任何保持代码干燥的程序员都不会真正担心任何事情,因为他们一开始就已经编写了好的代码,随后 V8 会利用这一点。
不管引擎如何,似乎答案确实就是编写好的代码。
| 归档时间: |
|
| 查看次数: |
2856 次 |
| 最近记录: |