繁体   English   中英

数组数组或对象数组

[英]array of arrays or an array of objects

存储具有四个整数属性的长度为10,000的数组的更有效的方式(就内存消耗而言)是:

选项1:对象数组

var array = [];
array[0] = {p1:1, p2:1, p3:1, p4:1}

要么

选项2:四个整数数组

var p1 = [], p2 = [], p3 = [], p4 = [];
p1[0] = 1;
p2[0] = 1;
p3[0] = 1;
p4[0] = 1;

就内存而言,四个10,000个元素的数组可能会更好,因为您只存储四个复杂的对象(数组),然后存储40,000个整数-否则,您将存储10,000个数组和40,000个整数(每个数组4个)。

选项2。4个对象(数组也是对象)与10001个对象。

我的猜测是,从位和字节的角度来看,单个多维数组将具有最小的占用空间:

var p = [];
p[0] = [1,1,1,1];

我实际上使用Google Chrome任务管理器测试了这两个选项,该管理器显示了有关打开的选项卡的信息( Shift+ESC ),尽管这可能不是100%准确,但确实显示出显着差异:

对于第一个选项,创建一个包含10,000个元素的数组,每个元素都是您指定的具有4个属性的对象,在启动该数组后,内存使用量将增加约10MB

第二种选择是创建4个数组,每个数组包含10,000个元素,从而使内存使用量增加了大约5MB

内存使用量的某些跳跃可能与创建和内部浏览器内容的实际处理有关,但是, 正如所期望的那样 ,创建对象正在为存储的数据增加更多开销。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM