我正在对 neo4j 的蓝图和原生实现之间的遍历速度进行性能测试。我创建了一个包含 1000 个节点的图,每个级别有 1 个节点,即
O->O->O->O->。. . .->O
我使用此蓝图代码记录了 90 毫秒、93 毫秒和 79 毫秒(运行 3 次)的迭代(循环代码)时间:
Iterable<Vertex> vertices = testGraph.getVertices();
//Code block which was measured.
for(Vertex vertex : vertices){};
并使用本机代码 270ms、268ms 和 321ms:
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 的时间也几乎相同。
有谁知道我如何加快本机性能以匹配蓝图?
谢谢你。