【问题标题】:JavaScript v8 Optimization Compiler | Monomorphism, Polymorphism?JavaScript v8 优化编译器 |单态,多态?
【发布时间】:2021-11-14 06:26:16
【问题描述】:

Chrome V8 优化编译器

单态、多态和超态在速度上还有区别吗?

Monomorphism => [{a:47}, {a:5}, {a:9}];
Polymorphism => [{a:1, b:65}, {c:22, a:57, d:8},{e:14, a:819}];
...

【问题讨论】:

    标签: javascript optimization compiler-construction v8


    【解决方案1】:

    (这里是 V8 开发人员。)

    是的,可以肯定地假设总会有。

    更难说的是它对您的应用程序是否重要。 例如,这取决于你在做什么。将不同种类的对象放入数组中根本没有任何区别。只有在之后访问这些对象的属性才会遇到多态性的概念(例如,如果您在其他地方有 for (let o of array) { o.a = 42; } - 数组并不关心,o.a 部分会关心)。

    此外,在微基准测试中清晰可见的效果可能只会影响噪声范围内(例如 1% 或更少)内的大型实际应用。因此,通常不必担心这一点,除非您有特定的理由(例如:分析结果)相信这可能是您的问题。

    【讨论】:

      猜你喜欢
      • 2013-08-30
      • 2014-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2017-07-01
      • 1970-01-01
      相关资源
      最近更新 更多