【发布时间】:2016-11-07 12:20:20
【问题描述】:
我知道现代 javascript 引擎会在幕后创建隐藏类,因此 not recommended 在运行时更改对象(如果您有大量具有相同结构的对象)。
有人听说过二维数组的内部优化吗?
我这样创建一个二维数组:
var map = [];
for (i = 0; i < 100000; i++) {
map.push(Array(2));
}
我打算像这样打破良好的结构:
map[100].push(/* third element! */)
这会对性能产生巨大影响吗?
【问题讨论】:
-
您应该尝试一下并进行基准测试
-
查看this article,似乎需要该单个数组的内存副本,因为它将不再能够将该数组与其余数组一起存储在连续内存中。在对内存进行碎片整理之前,它不应破坏任何其他阵列。我怀疑你会看到任何性能影响。
标签: javascript performance v8 ecmascript-5