JavaScript引擎是否对多维数组执行任何优化
Do javascript engines perform any optimization of multidimentional arrays?
我知道现代JavaScript引擎在幕后创建了隐藏的类,所以不建议在运行时更改对象(如果你有大量具有相同结构的对象)。
有没有人听说过二维阵列的内部优化?
我以这种方式创建一个二维数组:
var map = [];
for (i = 0; i < 100000; i++) {
map.push(Array(2));
}
我打算像这样打破漂亮的结构:
map[100].push(/* third element! */)
这会对性能产生巨大影响吗?
V8 不会对多维数组进行任何优化,因此对性能应该没有可衡量的影响。
我不能代表其他 JavaScript 引擎,但如果你描述的模式在任何地方都有负面影响,我会感到惊讶。您正在谈论的优化类型通常需要做出假设并通过检查来保护它们。鉴于 JavaScript 数组的高度动态特性,这对于一维数组来说已经足够脆弱了;检查二维数组的任何非平凡属性可能不值得付出代价。
相关文章:
- JavaScript:只有当数组中的所有项都为true时才执行函数
- 如果数组仍在执行,async.forEach()将运行我添加到数组中的新元素
- Var工作,但在使用数组执行相同操作时停止
- 执行过滤对象数组的方法
- 使用数组表示法对多个字段执行jQuery日期选择器
- Bluebird中承诺链数组的串行执行
- 使用Node中的Q promise库对值数组顺序调用/执行相同的函数;并返回带有结果的新数组/集合
- 如何对jquery数组中的项执行函数
- Promise和Promise.all(数组)在数组实现之前执行
- 如何在不选择模式配置参数的情况下,使用mongoose在MongoDB模式实例化中的关联数组/对象中执行foreach
- 如何按顺序执行承诺数组
- 对javascript对象数组执行数学运算
- 从JavaScript数组执行多个回调
- 关联数组执行起来像散列表吗?
- 在Javascript中对Integer数组执行计算
- 获取setInterval以根据数组执行一定次数的操作
- 函数数组-执行单个函数
- 对array构造函数创建的未定义数组执行forEach操作
- 为什么我在为带有 parse.com 的数组执行 fetchAll 时出现错误
- JavaScript引擎是否对多维数组执行任何优化