Performance Neo4j蓝图与本机遍历速度。
我正在对neo4j的蓝图和本机实现之间的neo4j遍历速度进行性能测试。我创建了一个1000个节点的图,每个级别1个节点,即 O->O->O->O->O->O 我已经使用以下蓝图代码记录了90毫秒、93毫秒和79毫秒(运行了3次)的迭代(循环代码):Performance Neo4j蓝图与本机遍历速度。,performance,testing,neo4j,Performance,Testing,Neo4j,我正在对neo4j的蓝图和本机实现之间的neo4j遍历速度进行性能测试。我创建了一个1000个节点的图,每个级别1个节点,即 O->O->O->O->O->O 我已经使用以下蓝图代码记录了90毫秒、93毫秒和79毫秒(运行了3次)的迭代(循环代码): Iterable<Vertex> vertices = testGraph.getVertices(); //Code block which was measured. for(Vertex vertex : vertices){}
Iterable<Vertex> vertices = testGraph.getVertices();
//Code block which was measured.
for(Vertex vertex : vertices){};
Iterable vertices=testGraph.getVertices();
//测量的代码块。
对于(顶点:顶点){};
并使用本机代码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){}
Iterable nodes=Traversal.description().breadthFirst().relationships(CustomRelTypes.LINKED_TO,Direction.OUTGOING).evaluator(Evaluators.all()).traverse(rootNode).nodes();
//测量的代码块。
对于(节点:节点){}
我无法理解neo4j的蓝图是如何更快地实现的。我没有为它们中的任何一个做任何特殊的配置。时间对于深度优先也是一样的
有人知道我如何加快本地性能以匹配蓝图吗
谢谢。蓝图在幕后使用了Neo4j的原生getAllNodes()方法,而不是遍历API: 因此,等效的本地Neo4j Java代码应该是:
g = new EmbeddedGraphDatabase('/path/to/graph-dir');
g.getAllNodes();
Blueprints实现与核心Neo4j API背道而驰,traversal API也是基于此构建的。从这个角度来看,它应该更快,但不会太多。在什么地方找到了那个测试用例?这里比较的是相同的东西吗?testGraph.getVertices()与graphDb.getAllNodes()相当,而不是这种遍历(在查找节点时使用关系),不是吗?