Possible Duplicate:
How to refer to children in a tree with millions of nodes
我正在尝试实现一棵将容纳数百万个节点的树,而该树又可以具有未指定数量的子节点。
为了实现这一点(因为每个节点可以有多个子节点),我将一个节点的子节点存储在Dictionary数据结构中。结果,当创建每个对象节点(数百万个)时,我得到了一个节点对象,其中包含存储在各个节点中的字符值,以及一个单独的Dictionary结构,该结构包含对子节点的引用。
我的树可用于数千个节点,但是当它到达数百万个节点时,会发生内存不足异常。这是否是因为内存中运行的数百万个节点中的每个节点都有自己的字典?即我有数百万个对象在运行?
我需要这些对象在内存中运行,并且不能使用文件或数据库。有人可以提出解决方案吗?
最佳答案
您的OOM异常可能是由于LOH碎片造成的,而不是实际上内存不足。您可以尝试切换到使用红黑树的SortedDictionary,而不是使用哈希表的Dictionary,看看是否可以改善问题。或者,您可以实现自己的树结构。