[PHP] nebo [JS]:jak napsat simple test rychlosti pripojeni
nejlepsi by bylo php.. mel jsem nejake napady, nebo napad, ale rekl bych, ze skript nefunguje.. napada vas neco jineho.. nebo jak to nejlepe resit.. napsat si to zvladnu uz snad sam.. i kdyz kdyby nekdo mel hezky zdrojak, rad se podivam jak na to.. a napisu si vlastni..
nize prikladam to co jsem napsal(snad by tam nemela byt chyba.. ale jisty si nejsem) ja a melo by snad fungovat, ale je to nejaky chaoticky... a vyhazuje to divny vysledky. pripadne vyzkousejte link http://jey.wz.cz/files/webdesign/4.php a kdyby vam to nahodou vyhazovalo priblizne spravne hodnoty napiste.. at zbytecne neplasim..
(pripojil jsem komentare do kodu.)
<?
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
$data=explode(" ",microtime());
$data[0]=round($data[0]*1000);
if ($data[0]<10) {$data[0]="0".$data[0];}
if ($data[0]<100) {$data[0]="0".$data[0];}
$start=$data[1].$data[0]; // microtime kdy zacne stahovani 100KB souboru
?>
<comment>
1000000-19B(za ty dva commenty) nesmyslnych znaku - tohle je 100Kbyte blok se kterym se dale pocita
</comment>
<script type="text/javascript">
time=new Date();
microtime=time.getTime(); //microtime, kdy skonci stahovani 100KB souboru
document.write('
',(100000/(microtime-<? echo $start; ? >)),'KB/s
'); // vypocet rychlosti pripojeni, vysledek v KB/s
</script>
1 Příloh-a(y)
Re: [PHP] nebo [JS]:jak napsat simple test rychlosti pripojeni
Lepší je toto řešení, ale může být nepřesné, protože každý prohlížeč zpracovává příchozí data jinak (nastavení bufferu pro flush je pokaždé jiné). Také záleží na vytížení odchozí linky serveru a serveru samotného (což ale nebude takový problém u měřených linek do řekněme 50MBit/s). Soubor index.php spustí test a soubor rychlost.php zobrazí výsledek. Ve výsledku je flash graf, ale ten samozřejmě být nemusí. V příloze posílám všechny soubory testu. Měří se pouze rychlost downloadu.
Princip je takový, že se nejprve změří krátkým testem základní schopnost linky. Podle toho se nastaví hlavní test (velikost stahovaných dat). Zaznamená se čas startu a pošlou se data ke klientovi. Po dokončení posílání se zaznamená čas odeslání. Rozdíl v čase se spočítá s velikostí dat a zobrazí se rychlost downloadu.
Vyzkoušet si to můžete na stránce http://rychlost.mysoft.cz
soubor: index.php
Kód:
<font face="verdana" color="navy"><?php
$kb=rand(2048,5120);
echo "streaming $kb kB...<br><!-";
flush();
$time = explode(" ",microtime());
$start = $time[0] + $time[1];
for($x=0;$x<$kb;$x++){
echo str_pad('', 1024, '.');
flush();
}
$time = explode(" ",microtime());
$finish = $time[0] + $time[1];
$deltat = $finish - $start;
echo "-> Test finished in $deltat seconds. Your speed is ". round($kb / $deltat, 3)."kB/s<br>";
$vysledek=round($kb / $deltat, 3);
// hlavní kolo
$kb=25*$vysledek;
if ($kb>50000):$kb=50000; endif;
echo "streaming $kb kB...<br><!-";
flush();
$time = explode(" ",microtime());
$start = $time[0] + $time[1];
for($x=0;$x<$kb;$x++){
echo str_pad('', 1024, '.');
flush();
}
$time = explode(" ",microtime());
$finish = $time[0] + $time[1];
$deltat = $finish - $start;
$vysledek=round($kb / $deltat, 3);
$vysledek=$vysledek*8; // převod z kB na kb
echo "-> Test finished in $deltat seconds. Your speed is ". round($kb / $deltat, 3)."kB/s<br>";
echo "Speed is <font size=5 color=green><b>$vysledek kbps</b></font><br>";
include "./rychlost.php";
?></font>
soubor rychlost.php
Kód:
<!--[if !IE]> -->
<br>WWW Prohlížeč: jiný, než IE.<br>
<object type="application/x-shockwave-flash" data="./tachak.swf?vysledek=<? echo $vysledek;?>" width="400" height="400">
<!-- <![endif]-->
<!--[if IE]>
<br>WWW prohlížeč: Internet Explorer.<br>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"
width="400" height="400">
<param name="movie" value="./tachak.swf?vysledek=<? echo $vysledek;?>" />
<!--><!---->
<param name="loop" value="false" />
<param name="menu" value="false" />
<param name="wmode" value="transparent" />
<param name="bgcolor" value="#ffffff">
</object>
<!-- <![endif]-->
Re: [PHP] nebo [JS]:jak napsat simple test rychlosti pripojeni
Snad si to autor po 7mi letech precte a pomuze mu to.
Kazdopadne vitej na foru .)
Re: [PHP] nebo [JS]:jak napsat simple test rychlosti pripojeni
Ahoj, díky za veselou chvilku:) zhruba před 6 a půl roky jsem to vyřešil a zhruba před 5 lety jsem ono řešení přestal používat/potřebovat nebo to bylo celé zastaralé, už fakt nevím, šlo o komunitní web pro uživatele wifi sítě.
Ale díky za snahu pomoct:-) hezký funkční skript, třeba se někomu bude v budoucnu hodit. Co jsem koukal na tento thread a na další zde odkazovaný, tak jsem se s tím tehdá dost nazlobil:)