2012-07-13 84 views
3

我正在做neo4j的neo4j的蓝图和本地实现之间的遍历速度的性能测试。我创建了1000个节点的图形,每个节点有1个节点,即:Neo4j蓝图vs本机遍历速度。 。

O> O-> O-> O>。 。 。

Iterable<Vertex> vertices = testGraph.getVertices(); 

//Code block which was measured. 
for(Vertex vertex : vertices){}; 

和使用本机代码270ms,268ms和:.-> 0

我已录制了迭代(for循环码)的时间为90μs,93ms和79ms使用此蓝图代码(RAN 3次) 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的蓝图实现是如何更快。我没有做过任何一个特别的配置。深度第一的时间也几乎相同。

做任何人,我可以加快本机性能匹配蓝图。

谢谢。

+1

好,蓝图实现违背核心Neo4j API,也是遍历API的基础。从这个角度来看,它应该更快,但不是那么多。在某个地方有测试用具吗? – 2012-07-13 17:19:16

+1

这里比较相同的东西吗? testGraph.getVertices()与graphDb.getAllNodes()相当,而不是遍历(使用关系,而不是查找节点时),不是吗? – cporte 2012-07-13 19:02:29

回答