这个问题是关于 Java JTree 或 Window .Net 树 (Winforms) 或 Adobe Flex 树。
在客户端-服务器应用程序中(对于 Flex,它实际上是 Web),我有一个带有分层数据的树(在 Windows 资源管理器类型的界面中)。现在,当用户从服务器请求更多数据时,我会懒惰地加载树。这很好,最多可以运行大约 750K 个节点(在 .Net Winforms 和 Adobe Flex 上进行了经验测试),但之后它变得迟缓。但是数据库增长很快(主要是因为用户可以粘贴大量节点),拥有 2000 万个节点的数据库并非不可能。
当分支折叠时我应该从树中释放数据以便垃圾收集器可以释放内存吗?这很好,但是如果用户没有效率并且不折叠分支怎么办?我应该做一个内存管理模块来关闭一段时间未触及的分支吗?
这一切似乎都需要做很多工作,以免内存不足。
编辑:我应该发布节点崩溃的数据吗?如果有,什么时候?弱对象缓存的想法很好,但我是否应该继续填充 UI 直到它崩溃(也许这不是一个坏主意)?