什么时候调用javascript deoptimizer?

时间:2017-05-28 11:55:23

标签: javascript performance compiler-optimization jit deoptimization

我理解js'JIT编译器会在循环中数据类型发生变化的情况下优化热代码或热代码(就像数组中的一个元素是字符串而休息是int)。

但我有几个场景我无法理解代码是否会被优化

  • 同一个循环用于两个数组,其中一个数组包含字符串和其他整数。编译器会在这里取消优化代码还是创建两个副本? (我知道它应该是两份)。
  • 如果是对象数组。考虑所有场景,如
    • 操纵子属性属于不同类型。
    • 每个对象的相同子属性,但是一个对象缺少一个属性。
      • 缺少属性不会在循环内被操纵。
      • 缺少属性在循环内被处理(处理空的情况)。
    • 所有对象都具有不同的属性(添加了新属性,或使用属性位置进行操作)。

0 个答案:

没有答案