从内存占用角度对比Node.js数组与对象的实验分享
数组与对象内存占用对比实验(Windows 10 + Node.js v6.11.0)
最近我在Windows 10系统上,基于Node.js v6.11.0版本做了个简单的对比实验,目标很明确:看看不同数据组织方式下,数组和对象的内存占用情况有啥差异。
实验里写了四个函数,它们都会生成相同大小的随机数集合,但存储这些数据的方式完全不同:
- reference函数:先创建一个固定大小的数组,然后直接往里面填充随机数字——相当于提前给解释器明确了数组的最终长度。
- twoArrays函数:用
push方法分别填充两个数组,这种情况下解释器没法提前预知数组的最终大小,只能动态扩容。 - matrix函数:把随机数组织成二维数组(矩阵)的形式,也就是用嵌套数组来存储数据。
- objects函数:通过
push方法构建一个数组,不过数组里的每个元素都是包含随机数的对象,相当于把数据封装成一个个对象再存入数组。
通过对比这四种实现的内存消耗,就能直观看到不同数据结构在内存利用上的差异啦。
内容的提问来源于stack exchange,提问作者vasaki
相关产品推荐
相关产品推荐

