Ho provato l'esempio dato here dopo alcune piccole modifiche - principalmente ho aggiunto una clausola where senza una corrispondenza - a scopo sperimentale.Neo4j query Cypher prestazione lenta
Sul mio sistema (1.9.M04 - java 6u43 - Ubuntu 12.04 - AMD Phenom II -X6 1090T) la semplice interrogazione
Con solo 1 nodo nel database (anche incorporato) ha preso 262 ms. Ovviamente qualcosa sta andando storto. Quale potrebbe essere il problema ?
Grazie
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.");
}
forse è solo l'overhead Neo4j bootstrap, si dovrebbe cercare di ripetere la query più volte, in questo caso credo che il tempo di esecuzione dovrebbe essere significativamente inferiore . – remigio
prima prova a riscaldare le cache. eseguire questo comando alcune volte: 'start n = node (*) return count (n); start r = rel (*) return count (r)'. secondo, come si misura il tempo? è il tempo dato dall'output cifrato o semplicemente il tempo prima e dopo la specifica linea di codice? nel secondo caso la latenza potrebbe essere tra la tua app e il server – ulkas
Ok ecco come si comporta - Già ho misurato il tempo della seconda esecuzione della query solo (aspettandosi che la prima esecuzione inizializzasse la cache interna ecc ..). Ma qui è diverso. è la terza esecuzione in poi ci vuole molto meno tempo. Non riesco a ottenere ciò che è speciale della 3a esecuzione per la stessa query. remigio grazie per il suggerimento, ulkas, lo sto usando in modalità incorporata – Shilu