Avatar billede sonic_86 Nybegynder
04. maj 2003 - 23:52 Der er 16 kommentarer og
1 løsning

Hvor langt tid tager det at hente.

Hej
Hvordan laver man en kode der kan finde ud af hvor langt tid det tager at hente en fil på f.eks 2.50 MB med et internet som kan hente med 12 kb/s?

Er det evt. muligt at finde persones download fart og så via det kan regne ud hvor langt tid det vil tage for den person at hente den fil på 2.50 MB?
Avatar billede sthen Nybegynder
04. maj 2003 - 23:57 #1
I teorien kunne det vel nok lade sig gøre, men i virkelighedens verden, er tingene ikke altid så sort/hvide.

Jeg mener:
Downloadtiden vil i høj grad også afhænge af serverkapacitet.
Avatar billede roenving Novice
05. maj 2003 - 00:00 #2
Da det alligevel er så afhængigt af hvilken rute (hvilke servere, som passeres) de enkelte pakker sendes med kunne det sikkert være ganske tilstrækkeligt at angive en normal-tid -- endda beregnet ville være i orden.

Personligt sidder jeg på en 10 Mbit-linje, hvilket skulle give download-hastighed på 1,1 til 1,2 Mbyte/s (teoretisk), men hvordan er vejbredden ude omkring i verden?

Gør som f.eks. Microsoft, som angive nogle ca.værdier -- i gamle dage med 28.8 modem, de har vist nået at opdatere dette
Avatar billede roenving Novice
05. maj 2003 - 00:03 #3
Så jeg ville regne mig frem til, at 2,5 Mbyte tager 10-20 sekunder med hurtig ADSL, 3-5 min. med ISDN (dobbelt) og så være tilfreds med det.

hth
jes
Avatar billede sonic_86 Nybegynder
05. maj 2003 - 00:03 #4
Ok det kan jeg godt se...
Men hvordan laver man en der viser hvor langt tid det tager i min og sek at hente en fil på 2.50 MB?

Hvad vil der bedste være 56K? ISDN? ADSL?
Avatar billede sonic_86 Nybegynder
05. maj 2003 - 00:04 #5
kk

Men hvordan ser sådan en kode ud til at regne det ud med?
Avatar billede roenving Novice
05. maj 2003 - 00:05 #6
Som eksempel downloadede jeg et js-script fra en bruger den anden dag, det tog (iflg. download-kontrollen) ca. 14 sek. -- jeg kan ikke huske størrlsen i byte, men jeg kunne overskue den i et eller to Notepad-vinduer, så der har ikke været 2 kb ialt!
Avatar billede roenving Novice
05. maj 2003 - 00:13 #7
Koden skulle være noget à la:

(filstørrelse * 8) i byte --> bit
/ forbindelseshastighed (56000, 128000, 128000/256000/osv.) -->antal sekunder
* 1.1 --> tag højde for pakkeforsendelse (Internet-forsendelse foregår i små pakker med en header m.v.)

og læg så en usikkerhed på, så

hastighed 56 k:

(2500000*8) = 20000000
/56000 = 357
* 1.1 = ca. 400

dvs. ca. 6 - 10 min.
Avatar billede Slettet bruger
05. maj 2003 - 00:14 #8
$storrelse = 697; //679 Kilobyte

$dlsek = round($storrelse / 5.2); // Afrunder antal sekunder
$minutter = floor($dlsek / 60); // Finder antal hele minutter ved at dividere sekunderne med 60, og fjerne decimalerne
$sekunder = $dlsek % 60; // Finder resten ved en heltalsdivision
echo "Dette download tager ca. " . $minutter . ":" . $sekunder . " med et 56K modem";
Avatar billede Slettet bruger
05. maj 2003 - 00:15 #9
Det siger vel sig selv at hvis du vil ændre dl hastigheden skal du pille ved de 5.2, der er en teoretisk grænse ;)
Avatar billede roenving Novice
05. maj 2003 - 00:24 #10
>>el_barto

Hvorfor så ikke angive formlen?

Mine erfaringer giver altså højere hastigheder end 5.2 kb/s med et 56 k-modem, og den teoretiske er meget tæt på 50 kbit/s
Avatar billede Slettet bruger
05. maj 2003 - 00:25 #11
Det var mest for at give en nem kode til at omskrive det på, kategorien hedder trods alt PHP og ikke matematik for viderekomne.
Avatar billede roenving Novice
05. maj 2003 - 00:38 #12
Nå, men jeg ville angive mindst 2 eksempler, feks. 56k og ADSL 256k, og så kommer vi til (med el_bartos værdi urørt):

$storrelse = 697; //679 Kilobyte
$k56hast = 5.2;
$k256hast = 23.7

$dlsek = round($storrelse / $k56hast); // Afrunder antal sekunder
$minutter56 = floor($dlsek / 60); // Finder antal hele minutter ved at dividere sekunderne med 60, og fjerne decimalerne
$sekunder56 = $dlsek % 60; // Finder resten ved en heltalsdivision

$dlsek = round($storrelse / $k256hast); // Afrunder antal sekunder
$minutter256 = floor($dlsek / 60); // Finder antal hele minutter ved at dividere sekunderne med 60, og fjerne decimalerne
$sekunder256 = $dlsek % 60; // Finder resten ved en heltalsdivision


echo "Dette download tager ca. " . $minutter56 . ":" . $sekunder56 . " med et 56K modem og ca. " . $minutter256 . ":" . $sekunder256 . " med en 256K ADSL";
Avatar billede roenving Novice
05. maj 2003 - 00:38 #13
-- og der mangler selvfølgelig en ; efter 23.7
Avatar billede roenving Novice
05. maj 2003 - 00:40 #14
-- og jeg gik ud fra at PHP-variable gerne må have tal med -- det er programmering jeg kan -- ikke PHP
Avatar billede Slettet bruger
05. maj 2003 - 00:44 #15
Du mener om det kan være af typen float? Ja, det kan de ;)
Avatar billede roenving Novice
05. maj 2003 - 00:47 #16
Nej, om $k256hast er lovlig syntax -- men jeg har ikke fantasi til at forestille mig det skulle være ulovligt
<,-)
Avatar billede roenving Novice
05. maj 2003 - 13:37 #17
Jamen tak da for points ;~}
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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