Gå til innhold

Hastighetsmåler med php og flash?


Anbefalte innlegg

Videoannonse
Annonse
Jeg har brukt Google. Problemet er helst hvordan lage det med Flash.

 

PS: Den du viste der viser utrolig feil.

5490540[/snapback]

Testet den uten å slå av DC++, så jeg vet ikke hvordan den fungerer... :)

 

Jeg bruker også Google, og jeg fant dette. Har ikke lest nøye gjennom, men jeg tror det er noe fornuftig her:

 

http://www.actionscript.org/forums/showthread.php3?t=79702

 

http://www.macromedia.com/devnet/flashcom/...ming_print.html

 

Søkeord: flash bandwidth measure

Lenke til kommentar

Hm, vil det la seg gjøre å lage en slik løsning kun ved hjelp av PHP? Sett at filen som lastes ned for å måle fart er en PHP-fil, hvor microtime() måles i starten og slutten av fila?

 

Eller blir fila alltid generert før den sendes, slik at dette bare måler tida serveren bruker på å generere fila?

Lenke til kommentar
Hm, vil det la seg gjøre å lage en slik løsning kun ved hjelp av PHP? Sett at filen som lastes ned for å måle fart er en PHP-fil, hvor microtime() måles i starten og slutten av fila?

 

Eller blir fila alltid generert før den sendes, slik at dette bare måler tida serveren bruker på å generere fila?

5491126[/snapback]

Vel, pr. teori så skal det være mulig ja. Sende f.eks 500.000 tegn og dele 500 med tiden det tok i sekunder slik at man får ut kB/s. Dog spørs det hvor korrekt det blir da. Mekket noe kjapt på lokal-serveren og jeg får ca 203488kB/s, eller tilnærmet 203,5MB/s. Bare så synd jeg har 100Mbit-kort stående i den maskina også kjent som at det ble totalt feil :hmm:

 

For de som måtte være interessert:

<?php
$var = '';

for ($i = 0; $i < 500000; $i++) //Jepp, jeg er lat som ikke gidder skrive 500.000 stk  a
$var .= 'a';

function microtime_float()
{
  list($usec, $sec) = explode(" ", microtime());
  return ((float)$usec + (float)$sec);
}

$calibrate_begin = microtime_float();
$calibrate_end = microtime_float();
$overhead_time = $calibrate_end - $calibrate_begin;

$performance_begin = microtime_float();
echo $var;
$performance_end = microtime_float();

$tid = (($performance_end - $performance_begin) - $overhead_time);
echo '<br />'. (500 / $tid).' kB/s<br>'.((500 / $tid) / 1000).' MB/s<br />';
?>

Endret av Ernie
Lenke til kommentar

Man kan ikke lage en hastighetsmåler vha. PHP. PHP blir parset av serveren samtidig som filen blir skrevet ut til brukeren. Men selv om brukeren skulle laste ned i 1kb/s, vil PHP-filen bli parset like fort. Hvor fort et PHP-script blir parset er derfor uavhengig av nedlastningshastigheten.

Lenke til kommentar

Som det sies så kan IKKE PHP brukes til hastighetsmåling hvis man vil ha det skikkelig da det kjøres på serveren FØR brukeren får innholdet.

 

For eksempel er min 2mbit linje aldri høyere enn 460Kbit på den overnevnte siden og det er jo "litt" unna den rette hastigheten.

Lenke til kommentar
Man kan ikke lage en hastighetsmåler vha. PHP. PHP blir parset av serveren samtidig som filen blir skrevet ut til brukeren. Men selv om brukeren skulle laste ned i 1kb/s, vil PHP-filen bli parset like fort. Hvor fort et PHP-script blir parset er derfor uavhengig av nedlastningshastigheten.

5492743[/snapback]

Ahh ... derfor det ble helt feil ja. Nei, da går det vel heller dårlig ja.

Lenke til kommentar

Metoden er muligens å preloade et bilde ved bruk av javascript. Merk tid før og etter preloading og vips...? Eller...

 

(Edit: foreslo fopen(...) men det er jo server, som i forrige post. Æsj.)

 

Edit 2: Har nå forsket litt. onload-attributen i IMG-taggen kan brukes for å kjøre en javascript funksjon etter at bildet er ferdig lastet. Det er vel her det gjøres da...

Endret av Albino
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...