节点为数组中的空值分配了多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,并根据需要扩大,如果需要的话。