11

跟进这个线程:

数组中的大量空值意味着任何伤害?

我用 node.js 做到了这一点:

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

我得到了

FATAL ERROR: JS Allocation failed - process out of memory

所以这给我留下了一个问题(我在 Yahoogle 上找不到)实际上为节点中的数组中的空条目分配了多少内存。我不打算使用 1000000000 个条目,甚至不接近,但也许仍然不值得分配内存......

谁知道我怎么查?

4

2 回答 2

1

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

于 2012-07-01T12:40:27.423 回答
-3

编辑:抱歉不准确,可能不适用于 JAVA ..
仍然可能对在其他应用程序中需要它的人有所帮助。

一个引用数组正在分配 x

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

是的,当然,如果你不打算使用所有的数组,
你应该考虑一个 HashMap,它是一种数据结构。HashMap
最适合具有相对少量项目的大搜索范围。

无论哪种方式,都有分配一个小数组的解决方案,并在需要时根据需要扩展它。

于 2012-06-30T20:28:37.023 回答