2016-04-30 4 views
0

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

+2

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

Antwort

2

SpeedTest prüft große (Multi-Megabyte) Dateien, weil eine kleine Datei (wie eine verkleinerte, gezippte jQuery) nicht Ihre volle widerspiegelt Geschwindigkeit aufgrund von Sachen wie HTTPS-Verhandlung, TCP-Overhead usw.

+0

Oh ja, stoßen die Dateigröße auf 10 MB bringt günstigere Ergebnisse 1x5,5, 2x6.6 und 7x 8,7-.9 MB pro Sekunde –

1

Zwei Dinge Zuerst sieht es so aus, als ob Sie 22,4 - 28 Mbps (statt MBps) mit Ihrem Test bekommen, der nicht weit von Ihrer 73 entfernt ist/74 von Speedtest.Net (vorausgesetzt, dass Sie das verwenden)

Zweitens ist die Datei, die Sie herunterladen, ziemlich klein (weniger als 0,3 MB), und es gibt Overhead für jede Download-Anfrage (Erstellen der Anfrage und Senden der Anfrage). Versuchen Sie eine größere Datei, und ich stelle mir vor, dass Ihre Berechnung näher ist.

Sie können Ihren Code auch auf Mbps anstelle von MBps einstellen.

Verwandte Themen