Hallo c#-community,
habe heute mal wieder eine kleine Frage. Ich möchte die Downloadgeschwindigkeit meines Rechners bestimmen. Habe dazu ein Konzept überlegt, welches ich mal hier vorstellen möchte und vorallem (von den Experten) wissen möchte, ob das was ich mir überlegt habe richtig ist.
Also das Konzept:
Ich lade den Quellcode einer Webseite in ein String (ist schon erledigt).
Anhand der Anzahl an Zeichen kann ich nun die Bits/ Bytes berechnen, die der Quellcode hat.
Wenn ich nun noch die Zeit stoppe, die zum Laden der Webseite nötig ist in der Form:
Stopuhr starten;
Quellcode der Webseite lesen;
Stopuhr stoppen;
Müsste doch die Bytes/ Zeit = Downloadgeschwindigkeit sein (bei Vernachlässigung der Multithreadfähigkeit, heißt dass mein Thread eventuell beim Ende des Ladens der Webseite nicht der aktive Thread ist, sondern erst nach ein paar Millisecunden).
Die Rahmenbedingung:
Es läuft nur mein Programm und kein weiterer Download.
Vernachlässigung der Multithreadfähigkeit (es soll eine etwa-Schätzung der Internetgeschwindigkeit sein und keine genaue Messung (da der Versuch einer solchen genauen Messung mit der Nicht-Echtzeitfähigkeit von Windows eh für die Katz währe).
mirrowwinger
Hallo mirrowwinger,
Das eigentliche Problem ist das du die Downloadgeschwindigkeit nie richtig messen wirst. Das liegt an den umständen das du nie davon ausgehen kannst das dein Rechner irgendwelche anderen Netzwerkverkehr erzeugt usw.
Wenn du eine Messung durchführst, ist dies nur eine Momentaufnahme.
Das Ziel ist es auch eine solche Momentanmessung durchzuführen. Der Hintergrund ist, dass ich auf dem Dorf wohne und es dort kein DSL per Kabel gibt. Wir haben DSL via Satellit und bei diesem bricht die Verbindung ab ca 14 Uhr ein. Ich möchte eigentlich mal über die Woche und über jeden Tag eine Art Messung veranschlagen (wahrscheinlich auch über mehrere Wochen) so dass ich eine Art Profil für die Internetverbindung erstelle.
Was mir jetzt wichtig ist. Ob eine wie oben beschriebene Messung sinnvoll ist oder ob nicht. Der Test wird auf einem eigens dafür vorbereiteten Rechner durchgeführt, der ein neuaufgesetztes Betriebssystem hat, um Störquellen (die eine Internetverbindung von sich aufbauen) zu minimieren.
mirrowwinger
Klar kannst du die Messung so durchführen. Es gibt auch genügend Beispiele im Internet zu diesem Thema. Eines davon ist z.B. das hier: http://stackoverflow.com/questions/1084199/how-to-create-a-download-speed-test-with-net-c.