Problem : Belirli bir kod parcasi uzerinde benchmark islemi gerceklestirmek,ve kodunuzun ne kadar hizli calistigini gormek istiyorsunuz.
Cozum : microtime () fonksiyonu yardimiyla, islem icin gecen saniye ve milisaniyeleri hesaplayabilirsiniz.
<?php
function microzamani_hesapla ()
{
$m_zaman = microtime();
$m_zaman = explode (" ",$m_zaman);
$m_zaman = doubleval ($m_zaman[1]) + doubleval ($m_zaman[0]);
return ($m_zaman);
}
$zaman1 = microzamani_hesapla ();
for ($i=0; $i<99999; $i++) {
$ar[] = $i;
}
$zaman2 = microzamani_hesapla ();
$fark = abs ($zaman2-$zaman1);
print "<BR> For Dongusu: $fark saniye icinde tamamlandi.n";
$i = 0;
unset ($ar);
$zaman1 = microzamani_hesapla ();
while ($i<99999) {
$ar[] = $i;
$i++;
}
$zaman2 = microzamani_hesapla ();
$fark = abs ($zaman2-$zaman1);
print "<BR>While Dongusu : $fark saniye icerisinde tamamlandi.n";
?>
http://www.turk-php.com/ornekler/bench_for_while.php
http://www.turk-php.com/ornekler/bench_for_while.phps
Tartisma : Yukaridaki ornekte ayni islemi gerceklestirmek icin for ve while donguleri kullanilmaktadir.Bu iki islem icin gecen sureler hesaplanmak ta ve karsilastirilmaktadir.
Bu cozum asagidaki sekilde kullanildiginda kendi programlarinizda belirli bir islem icin gecen sureyi kullanicilariniza gosterme firsatina sahip olacaksiniz:
<?php
$zaman1 = microzamani_hesapla ();
//Bundan sonraki kisimda istediginiz islevi yerine getiren kendi kodlariniz yer aliyor.
$zaman2 = microzamani_hesapla ();
$fark = abs ($zaman2 - $zaman1);
Bu makalade kendi yazdigimiz microzamani_hesapla () fonksiyonunu kullandik.Bunun sebebi microtime () yapisal hazir fonksiyonu'nun sonucu saniye ve milisaniye olarak (aralarinda bir bosluk yer aliyor) string seklinde dondurmesi. Biz kendi yazdigimiz fonksiyonda bu ham veriyi bir "sayi" veritipine donusturduk hemde aralarindaki boslugu kaldirarak bu saniye ve milisaniye sayilarini birbiri ile toplayip tek bir deger elde ettik.
microtime () fonksiyonu saniye ve milisaniyeleri UNIX zamanini ( Daha cok bilinen adiyla "epoch saniyeleri" Ocak,1,1970 ten o ana kadar gecen saniyeleri saymaktadir.) kullanmaktadir.
Daha gelismis cozumler
Bu karsilastirma ve gecen zamani hesaplama islemleri ile cok fazla ilgileniyorsaniz PHP e-posta listesine gonderilen asagidaki sinifi inceleyip,ozgurce kullanabilirsiniz.(Yayinci kisinin kimligi bilinmiyor veya yazan kisi isimsiz kalmak istemis.)