2 Stimmen

NetNamedPipe: Unterschiedliche Antwortzeiten bei Kommunikation im Leerlauf

Ich habe zwei WCF-Anwendungen, die einseitig über Named Pipes kommunizieren. Alles ist gut, bis auf eine Sache: Normalerweise dauert der Anfrage-/Antwort-Zyklus keine (marginale) Zeit. Allerdings, wenn es eine Zeitspanne von, sagen wir, eine halbe Minute ohne jede Kommunikation, die Anforderung/Antwort erhöht bis zu ~300-500ms.

Ich habe mich im Netz umgesehen und bin auf die Idee gekommen, einen Herzschlag-/Ping-Mechanismus zu verwenden, um den Kommunikationskanal in Gang zu halten. Durch Ausprobieren fand ich heraus, dass die Antwortzeiten niedrig bleiben, wenn ich alle 10 Sekunden eine Anfrage stelle. Ab einem Intervall von etwa 15 Sekunden beginnen die "Schluckauf"-Antwortzeiten aufzutauchen.

Jetzt frage ich mich, woher dieses Phänomen kommt. Ich habe versucht, alle denkbaren Timeouts auf beiden Seiten auf > 1 Minute einzustellen, aber das hat nicht geholfen.

Kann jemand erklären, was hier vor sich geht?

2voto

xofz Punkte 5490

Lesen Sie den Blogbeitrag von Wenlong Dong, Warum wird WCF langsam, nachdem es 15 Sekunden lang im Leerlauf war?

Der Beitrag enthält auch einen Workaround, bis das Problem behoben ist.

0voto

Jon Skeet Punkte 1325502

Ist es möglich, dass der im Leerlauf befindliche Prozess auf die Festplatte ausgelagert wird? Wenn Sie die Prozesse an beiden Enden beschäftigt, aber machen Sie nicht die Verbindung beschäftigt, passiert das immer noch?

Das ist es vielleicht nicht, aber einen Versuch ist es vielleicht wert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X