hi stephan, my theory is that most of the time would spent on retrieving imcoming relationships. could you try again but this time only retrieve outgoing relationship?
for (Node node : db.getAllNodes()) { if (node.getId() > 0) { long test = System.currentTimeMillis(); Iterable<Relationship> rels = node.getRelationships(knows, Direction.OUTGOING); System.out.print("Retrieval:" + (System.currentTimeMillis() - test)); test = System.currentTimeMillis(); int count = com.google.common.collect.Iterables.size(rels); System.out.print("ms; Counting:" + (System.currentTimeMillis() - test)); System.out.println("ms; number of edges:" + count); } } On Tue, Sep 20, 2011 at 4:37 PM, st3ven <st3...@web.de> wrote: > Hello again, > > the bottle neck is at the iteration. > I did some tests with it to check whether the iteration or relationship > retrievel is to slow. > > My test results look like this: > > Retrieval:1ms; Counting:158ms; number of edges:116407 > Retrieval:0ms; Counting:2ms; number of edges:1804 > Retrieval:0ms; Counting:0ms; number of edges:22 > Retrieval:0ms; Counting:0ms; number of edges:31 > Retrieval:0ms; Counting:0ms; number of edges:39 > Retrieval:0ms; Counting:2ms; number of edges:1213 > Retrieval:0ms; Counting:0ms; number of edges:57 > Retrieval:0ms; Counting:36ms; number of edges:59420 > Retrieval:0ms; Counting:335ms; number of edges:175156 > Retrieval:1ms; Counting:168ms; number of edges:146697 > Retrieval:0ms; Counting:354ms; number of edges:285051 > Retrieval:0ms; Counting:0ms; number of edges:50 > Retrieval:0ms; Counting:11ms; number of edges:20960 > Retrieval:0ms; Counting:0ms; number of edges:43 > Retrieval:0ms; Counting:0ms; number of edges:51 > Retrieval:0ms; Counting:1ms; number of edges:647 > Retrieval:0ms; Counting:5ms; number of edges:10216 > Retrieval:0ms; Counting:2ms; number of edges:3444 > Retrieval:0ms; Counting:0ms; number of edges:1128 > Retrieval:1ms; Counting:312ms; number of edges:319127 > Retrieval:1ms; Counting:0ms; number of edges:5 > Retrieval:0ms; Counting:760ms; number of edges:104741 > Retrieval:0ms; Counting:11ms; number of edges:9210 > Retrieval:0ms; Counting:0ms; number of edges:31 > Retrieval:1ms; Counting:3ms; number of edges:3116 > Retrieval:0ms; Counting:37ms; number of edges:70835 > Retrieval:0ms; Counting:383ms; number of edges:296445 > Retrieval:1ms; Counting:0ms; number of edges:120 > Retrieval:0ms; Counting:2ms; number of edges:1526 > Retrieval:0ms; Counting:0ms; number of edges:71 > Retrieval:0ms; Counting:42ms; number of edges:35960 > Retrieval:0ms; Counting:90ms; number of edges:9644 > Retrieval:0ms; Counting:186ms; number of edges:129981 > Retrieval:0ms; Counting:1ms; number of edges:1213 > Retrieval:1ms; Counting:143ms; number of edges:124495 > Retrieval:0ms; Counting:0ms; number of edges:58 > Retrieval:0ms; Counting:75ms; number of edges:56195 > Retrieval:0ms; Counting:99ms; number of edges:92574 > Retrieval:0ms; Counting:0ms; number of edges:13 > Retrieval:0ms; Counting:50ms; number of edges:26350 > Retrieval:0ms; Counting:2ms; number of edges:1856 > Retrieval:1ms; Counting:376ms; number of edges:114166 > Retrieval:0ms; Counting:9528ms; number of edges:11956 > Retrieval:0ms; Counting:50047ms; number of edges:12645 > Retrieval:1ms; Counting:43687ms; number of edges:15025 > > The first results came up very fast, because they seem to have been cached > cause I did that quite often. > As you can see the last 4 results weren't cached and it took a huge amount > of time to do the iteration over the relationships. > > I checked that with the following code: > > for (Node node : db.getAllNodes()) { > if (node.getId() > 0) { > long test = System.currentTimeMillis(); > Iterable<Relationship> rels = > node.getRelationships(knows); > System.out.print("Retrieval:" > + (System.currentTimeMillis() > - test)); > > test = System.currentTimeMillis(); > int count = > com.google.common.collect.Iterables.size(rels); > System.out.print("ms; Counting:" > + (System.currentTimeMillis() > - test)); > System.out.println("ms; number of edges:" + > count); > } > } > Is there maybe a possibilty to cache more relationships or do you have any > idea hot to speedup the iteration progress. > > Thanks for your help again! > > Cheers, > Stephan > > -- > View this message in context: > http://neo4j-community-discussions.438527.n3.nabble.com/Creating-a-graph-database-with-BatchInserter-and-getting-the-node-degree-of-every-node-tp3351599p3352415.html > Sent from the Neo4j Community Discussions mailing list archive at Nabble.com. > _______________________________________________ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Best regards Linan Wang _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user