Ich wollte etwas vor Ort haben, dass ich verwenden kann, um meine Internet-Geschwindigkeit zu messen, anstatt immer auf http://www.speedtest.net gehen. So fand ich this Skript zusammengefasst Gebrüll:Warum bekomme ich verschiedene Geschwindigkeit Ergebnisse mit diesem Skript und Speedtest Website
int jQueryFileSize = 261; //Size of File in KB.
WebClient client = new WebClient();
DateTime startTime = DateTime.Now;
client.DownloadFile("http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.js", Server.MapPath("~/jQuery.js"));
DateTime endTime = DateTime.Now;
speeds[i] = Math.Round((jQueryFileSize/(endTime - startTime).TotalSeconds));
Mit dem Skript, das ich bekommen durchschnittlich 2800-3600 KB/s, aber wenn ich auf die Speedtest Website gehen erhalte ich 73-74 Mbps (Und das ist, was ich dafür zu bezahlen , und ich komme in meinen Torrent-Downloads dazu). Offensichtlich wäre es schwer für 6 Zeilen Code, so gut wie ein ganzes Geschäft zu arbeiten, das nur für diesen Zweck gemacht wurde, aber dennoch sollte es mir nicht unmöglich sein, meine Internetgeschwindigkeit lokal zu bekommen. Ich ruiniere das Skript auf einer localhost.net-Website.
Warum funktioniert dieses Skript nicht richtig? Ist es, weil die Datei nicht groß genug ist und der Download so schnell geschieht, dass es keine Zeit gibt, die tatsächlichen Geschwindigkeiten zu erreichen, zu denen mein Internet fähig ist? (Ähnlich wie Torrent-Downloads, wo ich langsam anfange und dann zu 5-7Mbps gehe
1) Verwenden Sie die Stoppuhrklasse anstelle von DateTime. 2) Um zu vermeiden, dass die Geschwindigkeit der Festplatte die Messung beeinflusst, laden Sie sie in den Speicher. 3) Verwenden Sie eine größere Datei. – Eser