私は、必要に応じて新しいノードを導入し、ルートノードから4分木を構築するPythonコードを持っています。メモリを浪費することなくツリーをリセットするには?
このquadtreeは継続的に再構築する必要があります。私がこれまで行ってきたのは、quadtreeを再構築する必要があるたびに、ルートノードの子リストを空のリストにリセットし、ルート。
私の心配は、前のツリーの(ルートノード以外の)すべてのノードがまだメモリに存在することです。ツリーはプログラムの過程でおそらく数万回再構築され、おそらく平均で5000個のノードが含まれているので、メモリが過負荷になっても驚くことはありません。
メモリの制限を超えないように、以前のすべてのノードを何とか削除する必要はありませんか?どうすればいい?このような
で
もっと読むですから、あなたが新しいノードを挿入し、何とか再形作るあなたのツリーに必要であることを意味するものではありませんが、あなたは(たとえばデータセットAに基づいてされて)あなたの木を切断していること新しいデータセットを作成する(Bデータセットに基づいて)? – gsamaras
プログラムが動作する方法は、毎回ルートからツリーを構築する必要があるということです。データセットBを使用してツリーを再構築すると、データセットAを使用した以前のツリーのノードからのデータは気にしません。私がダウンしたのは、ツリーAを「破棄」しないことです。ツリーAのノード。私は同じルートノードから始めて全く新しいツリーBを構築します(最初は子を空にするためにリセットしました)。したがって、Bを構築した後、ツリーBとツリーAの両方からのノードオブジェクトは、正しく理解すれば、メモリに格納されます。私がしなければならないのは、ツリーAを削除することです。しかし、私は方法がわかりません。 –