この質問は、Java JTree または Window .Net Tree (Winforms) または Adobe Flex Tree に関するものです。
クライアント/サーバー アプリケーション (Flex の場合、実際には Web です) には、階層データを含むツリーがあります (Windows Explorer タイプのインターフェイス内)。現在、ユーザーがサーバーからより多くのデータを要求すると、ツリーを遅延ロードします。これは問題なく、約 750K ノード (.Net Winforms および Adobe Flex で経験的にテスト済み) までは機能しますが、その後は遅くなります。しかし、データベースは急速に拡大し (主に、ユーザーが大量のノードを貼り付けることができるため)、2,000 万ノードのデータベースはまったくありそうもないことではありません。
ガベージ コレクターがメモリを解放できるように、ブランチが折りたたまれているときにツリーからデータを解放する必要がありますか? これは問題ありませんが、ユーザーが効率的でなく、ブランチを折りたたまない場合はどうなるでしょうか? しばらく触れられていないブランチを閉じるメモリ管理モジュールを実行する必要がありますか?
メモリ不足にならないようにするには、これはすべて大変な作業のように思えます。
編集:ノードの崩壊時にデータを解放する必要がありますか? もしそうなら、いつ?弱いオブジェクト キャッシュのアイデアは良いですが、UI が壊れるまで引き続き UI をいっぱいにする必要がありますか (それは悪いアイデアではないかもしれません)。