Avatar billede Slettet bruger
16. februar 2007 - 15:50 Der er 5 kommentarer og
1 løsning

udregn af stabil download hastighed

Efter hjælp i denne tråd:
http://www.eksperten.dk/spm/757266

Har jeg fået stukket dette sammen:

private void _Timer1_Tick(object sender, EventArgs e)
{
    long TempSpeed = 0;
           
    this._SpeedArray.Insert(0, _DownloadedBytes);
    _DownloadedBytes = 0;

    //Insure that only the last 10 items is in the array
    if (this._SpeedArray.Count == 11)
          this._SpeedArray.RemoveAt(10);

    //Get bytes transfered the last 10 sec
    for (int i = 0; i < this._SpeedArray.Count; i++)
    {
          TempSpeed += this._SpeedArray[i];
    }

    //Devide by numbers in array
    _TransferSpeed = TempSpeed / this._SpeedArray.Count;
}

_DownloadedBytes er i bytes, _Timer1_Tick kører hvert 1000 millisec

Jeg dividerer med 1024 når jeg viser det for at få kb/s, men jeg får et meget stort tal, hvad gør jeg forkert?
Avatar billede dr_chaos Nybegynder
16. februar 2007 - 18:17 #1
henter du filen fra dit lokal drev ?
Avatar billede dr_chaos Nybegynder
16. februar 2007 - 18:20 #2
hvilket tal får du frem ?
Avatar billede driis Nybegynder
17. februar 2007 - 23:26 #3
Hvorfor dividerer du med SpeedArray.Count ?
For at få et stabilt tal, der ikke afviger for meget mellem aflæsning, kan det være en fordel at lave et løbende gennemsnit.

Endvidere kan du ikke være sikker på at timer.tick er præcis. Den er afhængig af mange ting, og den kører på GUI tråden, som man ikke kan være sikker på, hvor længe den er blokeret. Normalt siger man at den er præcis op til +/- 150 ms. Så en bedre approach ville være at udlæse tiden sden sidste gang, og bruge den til at beregne hastigheden. Gerne ved hjælp af en højhastighedstimer, så du er sikker på at få et præcist resultat.
Avatar billede Slettet bruger
18. februar 2007 - 12:34 #4
Hmm, kan du komme med et ekspempel på det?

Jeg diverere med SpeedArray.Count fordi arrayet indeholder de sidste 10 sekunder, og ved at devidere med SpeedArray.Count, altså 10, for jeg gennemsnittet af de 10 sec
Avatar billede Slettet bruger
18. februar 2007 - 16:29 #5
Hmm, det virker nu, jeg havde kommet til at skrive += isteddet for =  :P
Avatar billede Slettet bruger
19. marts 2007 - 14:23 #6
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester