节点为数组中的空值分配了多less内存

继续这个线程:

数组中的大量空值意味着什么危害?

我用node.js做了这个:

arr=[] arr[1000]=1 arr[1000000000]=2 arr.sort() 

我得到了

 FATAL ERROR: JS Allocation failed - process out of memory 

所以这就给我留下了问题(在Yahoogle上我找不到)为节点中的数组中的空条目实际分配了多less内存。 我不打算使用10亿条目,甚至没有closures,但也许还是不值得分配内存…

谁知道我可以检查?

所以总之, node.js不会为数组中未定义的值分配内存。 我遇到的崩溃一定是一个小故障,因为没有其他人可以重现它,安装最新的node.js版本也消除了我的问题。

编辑:对不起,可能不适用于JAVA ..
对于在其他应用程序中需要它的人可能还是有帮助的。

一个引用数组是分配x

因此分配arr [100000]将分配100kb x 4b = 0.5Mb(近似)

和是的,当然,如果你不是要使用所有的数组,
你应该考虑一个HashMap这是一个数据结构只是为了..
HashMap最好是具有较大的search范围和相对较less的项目数量。

无论哪种方式,有解决scheme分配一个小arrays,并根据需要扩大,如果需要的话。