休止状態で永続化された頂点オブジェクトとエッジ オブジェクトを使用してグラフ アルゴリズムを構築しています。このコードは、エッジをチェックしてエッジがステータスかどうかを確認するときに集中的な作業を行う必要があります (また、頂点を「認識する」別のコードも同様の処理を行う必要があります)。
クラス:
Vertex(long id, String name);
Edge(long id, Vertex v, Vertex w, boolean visited);
VertexDAO(Vertex vertex);//persistence class for vertex implemented with hibernate
EdgeDAO(Edge edge);//persistence class for vertex implemented with hibernate
グラフで訪問したエッジを設定/更新するには、次の 2 つのオプションがあります。
(休止状態を介して) アクセスされていないエッジを取得し、必要に応じてそれらを設定するために、DAO オブジェクトにクエリを実行します。問題: これらの操作のコストがわかりません。また、グラフが大きくなったときに効率的かどうかもわかりません。そして、それは最善の解決策ではないようです。
私自身のエッジのセットをテストして、訪問された(されていない)すべてのエッジを取得します。問題: おそらく、私の検索アルゴリズムは休止状態のものよりも最悪であり、休止状態がオブジェクトをメモリ内で効率的に管理し、それらを永続化またはオーバーヘッドする必要がない場合、以前の代替手段と比較してパフォーマンスが低下する可能性があります。
この場合の経験やヒントはありますか?助けてくれてありがとう。