RavenDB de temps de réponse pour la requête, tout a été traitée sur le serveur très rapide
Question
Raven.Server commencé et binded au port 8022. J'initialiser DataStore de la manière suivante:
var store = new DocumentStore() { Url = "http://localhost:8022" };
store.Initialize();
Alors je fais cette requête:
using (var session = store.OpenSession())
{
Stopwatch watch = new Stopwatch();
watch.Start();
var result = session.LuceneQuery<Item>("Raven/DocumentsByEntityName")
.WhereEquals("Tag", "Items")
.ToList();
watch.Stop(); // watch.ElapsedMilliseconds == ~550 ms
return result;
}
Et watch.ElapsedMilliseconds
est toujours ~ 550 ms.
Mais quand je regarde à la console RavenDB je vois que la requête a été traitée en 3 ms:
Request # 170: GET - 3 ms - 200 - /indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128
Ainsi ~ 99,5% du temps ont été dépensés pas RavenDB. Quel est le problème? (RavenDB 147)
Quand je passe à l'auto-hébergement de RavenDB (à savoir en tant que client embarqué) tout est correct (~ 3ms).
Pour clarifier cette question non dans le réseau, débogueurs http, serveurs dns etc. J'ai aussi testé ceci:
Stopwatch watch = new Stopwatch();
watch.Start();
WebClient client = new WebClient();
var result = client.DownloadString("http://127.0.0.1:8022/indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128");
watch.Stop(); // watch.ElapsedMilliseconds == ~3-10ms
Rapide . Mais le passage à Raven.Client.Lightweight augmenter le temps de réponse de 200 fois (550-600 ms)
La solution
Le problème était à cause de mon ordinateur sur middleman - NOD32. Si vous aussi utilisez - décochez la case suivante:
Configuration -> Configuration avancée -> Antivirus et antispyware -> Filtrage des protocoles -> "Activer le filtrage du contenu de l'application protocal"
invalidantes simple antivirus ou pare-feu ne pas help!
Autres conseils
tatillonne Peut-être et peut-être juste un typ-o mais parfois les choses les plus stupides peuvent nous conduire les noix;
votre déclaration: "Raven.Server a commencé et binded au port 8082 J'initialiser DataStore de la manière suivante:."
votre exemple de code lit: "Var magasin = new DocumentStore () {Url = "http: // localhost: 8022 "};"
le port dans votre titre est 8082 et le port dans votre exemple est 8022 .
Je me rends compte de votre typ-o ne peut pas être dans votre code réel mais il ne est jamais vérifier.
'm jus' sayin'
P