对于JavaScript对象,数组和内存使用情况,以下哪种结构的内存效率更高?
aa = [ {'a':1, 'b' : 2}, {'a':3, 'b' : 4} ]
bb = { 'a' : [1,3], 'b' : [2,4] }
aaa = [ {'a':1, 'b' : 2}, {'a':1, 'b' : 2}, {'a':1, 'b' : 2}, {'a':1, 'b' : 2}, {'a':1, 'b' : 2}, {'a':1, 'b' : 2}, {'a':1, 'b' : 2} ];
bbb = { 'a' : [1,1,1,1,1,1,1], 'b' : [2,2,2,2,2,2,2] };
由于各种原因,似乎很难准确衡量对象在JavaScript中使用了多少RAM。但是,Chrome的新内存标签似乎可以帮助我们找出上述哪个更好。
对于aa
和bb
,似乎aa
使用的内存较少(我们是在考虑保留还是浅的大小)?很难分辨,因为该对象数组的创建似乎同时创建了其他对象。
AA
Screenshot of Chrome's Memory for Creation of AA
BB:
Screenshot of Chrome's Memory for Creation of BB
对于aaa
和bbb
,似乎bbb
的对象大小小于aaa
的对象数组,但是所有条目的ram在aaa
中比bbb
少,那么哪一个真正更有效?
AAA:
Screenshot of Chrome's Memory for Creation of AAA
BBB:
Screenshot of Chrome's Memory for Creation of BBB
开发人员似乎更喜欢使用一组对象,因为它更容易搜索(包括我自己),但我真的只想知道哪种结构在内存方面更有效。
我的水平不够低,无法理解当JavaScript对象存储在内存中时会发生什么。管理内存由于其复杂性而被抽象化(感谢所有使这一切成为可能的人......但是Chromium开发人员很差)。