PHP Centeri avaleht Skriptikogu Küsimuste-vastuste leht Teadete vaatamine ja saatmine Foorum - koht küsimiseks Otsingumootor Siit saad infot meie kohta

Kasutajanimi:  
  Parool: 
  Registreeri!   Unustasid salasõna?

 Skriptid (427) 

 Bannerisüsteemid
 E-kaardid
 E-maili saatmine
 E-poed
 Failihaldus
 Flash ja PHP
 Foorumid
 Jututoad
 Kalendrid
 Kalkulaatorid
 Kellad
 Klikilugejad
 Kommentaarid
 Külalisteraamatud
 Küsitlused
 Lehe turvamine
 Lingikogud
 Mängud
 Otsingusüsteemid
 Pildid ja PHP
 Shoutboxid
 Sisuhaldussüsteemid
 Statistika
 Suunamine
 Templeidisüsteemid
 Testid
 Uudised
 Uudistelistid
 Varia


 Otsing 

 

 Utiliidid 

 Kes on kus
 Kasutajate info
 Küsitlused
 PHP manuaal
 Õpetused
 Jututuba
 Lingikogu
 Lemmikskriptid


 Lihtne kiirusetest
Autor: siku
Reede, 05. detsember 2003 19:41
Lihtne kiirusetest

Mõtlesin, et teeks mingi õpetuse, ja otsustasin teha selle kiirustesti kohta. Kuna viimasel ajal on selle üle suht palju boleemikat olnud, siis siit saaksid algajad endale juhtnöörid. Asi siis hästi lihtne, et ta ikka arusaadav oleks.

Nonii, hakkame siis pihta:
Teatavasti kipuvad igale poole vahemäluserveritesse jääma sellised asjad, mis ei muutu ja on ühesugused. Seega, selleks, et iga test oleks unikaalne, tuleb sellele anda mingi unikaalne omadus. Mina kasutan selleks funktsiooni, mis genereerib selleks suvalise ASCII sodi. Allpool ongi funktsioon:
PHP kood:


function genereeri_hash($pikkus=1024)
{
for(
$i=1;$i<=256;$i++)
{
$smb[]=chr($i); //cchr() funktsiooniga loome erinevaid sümboleid
}
srand();
for(
$j=0;$j<=$pikkus;$j++)
{
$hash.=$smb[rand(1,256)];
}
return 
$hash//tagastame hashi
}


Järgmiseks on vaja ära teha ka funktsioon, mis hakkab aega mõõtma. Ütlen otse välja, et
kopeerisin selle php manuaalist, sest ei viitsinud hakata ise seda jupikest kribama:
PHP kood:


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


Nii, nüüd on meil paar vajalikku funktsiooni valmis. Tuleks asuda asja kallale:
PHP kood:


$yhik=1024//ehk siis yhik, mida v2ljastame (1024 baiti)
$yhikuid=1023//mitu yhikut v2ljastame, 1023 sellepärast, et yks on hashina olemas
$hash=genereeri_hash(); //teeme kogu sodile alguse, et sodi oleks unikaalne
$kogusuurus=($yhik*$yhikuid)+strlen($hash); //siit saame kogu andmemahu baitides
$bitid=$kogusuurus*8//arvutame bitid
$kokku=$yhik*$yhikuid//ja andmed baitides kokku
$baidid=array(); //defineerime baidid-massiivi
$baidid[0]=$hash//ja m22rame selle esimeseks elemendiks unikaalse v6tme
//ja siis loome tsykli abil massiivi andmetega
for($i=1;$i<=$yhikuid;$i++)
{
$baidid[$i]=str_repeat('#',$yhik); //loome siis 1024 kilobaiti ehk yhe megabaidi
}
//ja nyyd siis hakkame kasutajale andmeid v2lja saatma
echo"<!--";
$start=getmicrotime(); //paneme stopperi käima
for($j=0;$j<=$yhikuid;$j++)
{
echo 
$baidid[$j]; //ja v2ljastame andmed kilobait-haaval
}
$end=getmicrotime(); //paneme stopperi kinni
$aeg_kokku=$end-$start// ja arvutame, palju aega kulus
$kiirus=$yhikuid/$aeg_kokku//arvutame kiiruse kilobaitidega
$kiirus_bit=$bitid/$aeg_kokku//arvutame kiiruse bittidega
echo"Aega kulus: ".round($aeg_kokku,3)." sekundit,<br>\n"//ja v2ljastame kasutajale
echo"V&auml;ljastati ".$kokku." baiti,<br>\n";
echo
"Sinu kiirus on: ".round($kiirus_bit/1024,3)." Kbit/s,<br>\n"//ymardame tulemused kah
echo"ehk ".round($kiirus,3)." KB/s.";
?>



NB: See kiirustest siin on äärmiselt primitiivne. See ei pruugi just olla kõige täpsem, aga
minul näitas ta tulemusi õigesti. Kui leiate siit mingeid puudusi(lohakas kood jne), siis ärge neid siin kommenteerima
hakake, tehke ikka ise endale originaalne kiirustest .

(C) 2003 Sigmar Muuga



Avaleht   -    Skriptikogu   -    Teated   -    Foorum   -    Reklaam   -    Tagasiside   -    Kasutamise reeglid

© Copyright 2002-2019 PHP Center. Kõik õigused reserveeritud.