Ich verwende eine Open Source-Bibliothek, um eine Verbindung zu meinem Webserver herzustellen. Ich war besorgt, dass der Webserver extrem langsam lief, und habe dann versucht, einen einfachen Test in Ruby durchzuführen, und diese Ergebnisse erhalten
Ruby-Programm: 2,11 Sekunden für 10 HTTP-GETs
Ruby-Programm: 18,13 Sekunden für 100 HTTP-GETs
C # -Bibliothek: 20,81 Sekunden für 10 HTTP-GETs
C # -Bibliothek: 36847,46 Sekunden für 100 HTTP-GETs
Ich habe ein Profil erstellt und festgestellt, dass das Problem diese Funktion ist:
private HttpWebResponse GetRawResponse(HttpWebRequest request) {
HttpWebResponse raw = null;
try {
raw = (HttpWebResponse)request.GetResponse(); //This line!
}
catch (WebException ex) {
if (ex.Response is HttpWebResponse) {
raw = ex.Response as HttpWebResponse;
}
}
return raw;
}
Es dauert mehr als 1 Sekunde, bis die markierte Zeile von selbst abgeschlossen ist, während das Ruby-Programm, das 1 Anfrage stellt, 0,3 Sekunden dauert. Ich mache auch alle diese Tests auf 127.0.0.1, so dass die Netzwerkbandbreite kein Problem ist.
Was könnte diese enorme Verlangsamung verursachen?
AKTUALISIEREN
Überprüfen Sie die geänderten Benchmark-Ergebnisse. Ich habe tatsächlich mit 10 GETs und nicht mit 100 getestet und die Ergebnisse aktualisiert.