Ich versuchte das Beispiel gegeben here nach einigen kleineren Änderungen - hauptsächlich habe ich eine Where-Klausel ohne eine Übereinstimmung - für den experimentellen Zweck.Neo4j Chiffre Abfrage langsame Leistung
Auf meinem System (1.9.M04 - java 6u43 - ubuntu 12.04 - AMD Phenom II 1090T -X6) die einfache Abfrage
Mit nur 1 Knoten in der Datenbank (embedded auch) nahm 262 ms. Offensichtlich geht etwas schief. Was könnte das Problem sein?
Dank
public void test()
{
GraphDatabaseService db = g = new GraphDatabaseFactory().newEmbeddedDatabase("./neo4j1test");
long id;
Transaction tx = db.beginTx();
try
{
Node refNode = db.createNode();
id = refNode.getId();
refNode.setProperty("name", "reference node");
tx.success();
}
finally
{
tx.finish();
}
ExecutionEngine engine = new ExecutionEngine(db);
ExecutionResult result = engine.execute("start n=node("+id+") where (n.name = \"reference node\") return n.name");
long time = System.currentTimeMillis();
result = engine.execute("start n=node("+id+") where (n.name = \"reference node\") return n.name");
time = (System.currentTimeMillis() - time);
System.out.println("Time taken : " + time + " ms.");
}
es ist nur die Neo4j Bootstrapping Overhead Vielleicht sollten Sie versuchen, die Abfrage mehrmals zu wiederholen, in diesem Fall denke ich, die Ausführungszeit deutlich niedriger sein sollte . – remigio
versuchen Sie zuerst, die Caches aufzuwärmen. führe diesen Befehl einige Male aus: 'start n = node (*) return count (n); starte r = rel (*) return count (r)'. Zweitens, wie misst man die Zeit? Ist es die Zeit, die durch die Ausgabe der Chiffre oder einfach die Zeit vor und nach der spezifischen Codezeile angegeben wird? Im zweiten Fall könnte die Latenz zwischen Ihrer App und dem Server liegen. – ulkas
Ok, wie verhält es sich? - Ich habe die Zeit der zweiten Abfrage nur gemessen (die erste Ausführung würde das interne Caching etc. initialisieren). Aber hier ist es anders. es ist die dritte Ausführung, es dauert wesentlich weniger Zeit. Ich bekomme nicht das Besondere an der 3. Ausführung für dieselbe Abfrage. Remigio Danke für den Tipp, Ulkas, ich verwende es im Embedded-Modus – Shilu