現在、約1,000 万のノードと3,500 万のエッジを持つグラフがあります。今のところ、プログラムの開始時に完全なグラフがメモリにロードされます。これには数分かかり (結局のところ Java です)、約 0.5 ギガバイトの RAM が必要です。今のところ、デュアル コア プロセッサと 4 ギガバイトの RAM を搭載したマシンで動作します。
幅優先検索を使用してグラフを検索すると、メモリ使用量が 1 ギガバイトのピークに達し、平均で 10 秒かかります。
プログラムを数台のコンピューターに展開したいと考えています。グラフ検索以外の機能は、ほとんどリソースを消費しません。私のターゲット システムは非常に小型で、512 メガバイトの RAM しかありません。
メモリをあまり消費せずにそのグラフを検索するための方法を (おそらくデータベースを使用して) 実装する方法に関する提案はありますか? プログラムはハードウェア デバイスにアクセスしているため、ほとんどの場合アイドル状態であるため、上記のグラフのパス検索には最大で約 5 分かかる場合があります...
私の方向に投げかけられた考えに感謝します。
アップデート:
neo4jが見つかりました。この種の巨大なグラフに適しているかどうかは誰にもわかりませんか?