首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript优化、V8引擎和类型记录

Javascript优化、V8引擎和类型记录
EN

Stack Overflow用户
提问于 2018-05-05 20:01:33
回答 1查看 2.5K关注 0票数 4

我阅读了下面关于V8引擎和javascript优化的文章。

JavaScript如何工作:在V8引擎内+5提示如何编写优化的代码

根据上述条款,建议:

V8引擎对隐藏类和属性使用隐藏类和缓存机制。因此,避免动态添加对象属性,并避免动态更改属性的类型。相反,使用对象构造函数。

V8引擎将更多的优化应用于经常使用的函数。因此,避免产生许多不同的类似形式的函数,只执行一次。相反,编写代码来重复执行相同的函数。

然后,我有三个问题:

“a”和“b”能否应用于其他浏览器的javascript引擎,如火狐的SpiderMonkey?

二、根据'a',使用类型记录更有利于v8引擎的优化?(使用类型记录,您可以用更少的动态更改对象和属性生成javascript代码)

三、现代JavaScript代码使用了许多具有类似形式的内联函数和匿名函数,如下面的示例代码。根据“b”,使用单一的预定义函数反而更有利?(此示例代码非常简化,以显示多次使用的类似表单函数)

代码语言:javascript
复制
prm.then((res) => {
    console.log(res);
}).then((res2) => {
    console.log(res2);
}).catch((err) => {
    console.log(err);
});
EN

回答 1

Stack Overflow用户

发布于 2018-05-05 20:17:29

首先,你的头衔很弱。标题几乎应该以问题的形式出现。例如:“可以优化javascript引擎的代码吗?”

'a‘和'b’可以应用于其他浏览器的javascript引擎,例如火狐的SpiderMonkey吗?

当然,但这取决于那些引擎的开发人员。我不认为在这里问它有什么好处。

根据'a',使用类型记录更有利于v8引擎的优化?

类型记录被编译成Javascript。V8是一个Javascript引擎,所以认为类型记录的编译器为V8或V8做了任何不同的事情,这是在进行任何优化,因为它是如何神奇地知道Javascript来自类型记录的,任何有利的东西充其量都是猜测(除非熟悉代码的人知道其他情况)。

由于TypeScript编译器正试图编写好的/优化的Javascript代码,所以V8只是在利用好的代码。任何人都可以编写好的Javascript,只是编写不好的TypeScript很难。但是需要注意的是,由于每次都以相同的方式编译代码,所以V8可以利用这一点,但是只有当程序员喜欢用类型记录编写代码时,这才是有益的。

现代JavaScript代码使用了许多具有类似形式的内联函数和匿名函数,如下面的示例代码。根据“b”,使用单一的预定义函数反而更有利?

在什么方面有优势?

您的匿名函数很可能已经编译出来了,因为console.log()是唯一被调用的函数,并且很容易被内联。这是个很坏的例子。

至于更复杂的函数,编写单个函数已经是一个很好的遵循原则(别再重复了-干)。因此,任何保持代码干净利落的程序员都不会真正担心任何事情,因为他们已经开始编写了好的代码,随后V8利用了这一点。

不管引擎是什么,答案似乎都是编写好代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50193537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档