私は、neo4j のブループリントとネイティブ実装の間で、neo4j のトラバーサル速度のパフォーマンス テストを行っています。レベルごとに1つのノードを持つ1000ノードのグラフを作成しました。
O->O->O->O->。. . .->O
このブループリント コードを使用して、90 ミリ秒、93 ミリ秒、79 ミリ秒 (3 回実行) の反復 (ループ コードの場合) 時間を記録しました。
Iterable<Vertex> vertices = testGraph.getVertices();
//Code block which was measured.
for(Vertex vertex : vertices){};
ネイティブ コード 270 ミリ秒、268 ミリ秒、321 ミリ秒を使用:
Iterable<Node> nodes = Traversal.description().breadthFirst().relationships(CustomRelTypes.LINKED_TO, Direction.OUTGOING).evaluator(Evaluators.all()).traverse(rootNode).nodes();
//Code block which was measured.
for(Node node : nodes){}
neo4j の設計図の実装がどのように高速なのか理解できません。それらのいずれに対しても特別な構成は行っていません。depthFirst の時間もほぼ同じです。
ブループリントと一致するようにネイティブのパフォーマンスを高速化する方法はありますか?
ありがとうございました。