【发布时间】:2017-02-22 22:38:32
【问题描述】:
考虑以下两种选择:
const mb_before = process.memoryUsage().heapUsed / 1024 / 1024;
const n = 15849;
const o = 115;
const entries = [];
for (var i = 0; i < n; i++) {
const subarr = [];
for (var j = 0; j < o; j++) {
subarr.push(Math.random());
}
entries.push(subarr);
}
const mb_after = process.memoryUsage().heapUsed / 1024 / 1024;
console.log('arr using ' + (mb_after - mb_before) + ' megabyte');
// arr using 15.110992431640625 megabyte
和
const mb_before = process.memoryUsage().heapUsed / 1024 / 1024;
const n = 15849;
const o = 115;
const entries = new Array(n);
for (var i = 0; i < n; i++) {
const subarr = new Array(o);
for (var j = 0; j < o; j++) {
subarr[j] = Math.random();
}
entries[i] = subarr;
}
const mb_after = process.memoryUsage().heapUsed / 1024 / 1024;
console.log('arr using ' + (mb_after - mb_before) + ' megabyte');
// arr using 12.118911743164062 megabyte
据我了解,这两个数组的大小应该相同,只是它们的实例化方式不同。如何解释导致的内存使用量始终不同?
【问题讨论】:
-
一句话?优化。
-
@T.J.Crowder 感谢您的更正;仍然想知道如何根据数组实例化的方法以不同的方式优化数据量的持久性
-
对不起,我删除的评论并不是作为一个更正,只是作为一个大学笑话。抱歉,如果没有遇到。
标签: javascript arrays memory v8