这个问题是关于Java JTree、Window .Net Tree (Winforms) 或Adobe Flex Tree的。
在客户端服务器应用程序中(对于Flex它是Web),我有一个具有分层数据的树(以Windows资源管理器类型界面为例)。现在当用户从服务器请求更多数据时,我会懒加载树。这很好,并且可以处理大约750K个节点(在.Net Winforms和Adobe Flex上进行实证测试),但是在那之后,执行速度会减慢。但是数据库增长很快(主要是因为用户可以粘贴大量节点),具有2000万个节点的数据库不太可能。
当一个分支被折叠时,我应该释放树上的数据,以便垃圾回收器可以释放内存吗?这没问题,但是如果用户不高效并且不折叠分支怎么办?我是否应该做一个内存管理模块,关闭那些长时间没有被使用的分支?
这似乎是为了避免内存耗尽而做的大量工作。
编辑:我应该发布节点崩溃的数据吗?如果是这样,什么时候发布?弱对象缓存的想法很好,但我应该继续填充UI直到它破裂吗(也许这不是一个坏主意)?