Merhaba arkadaşlar,

Test kategorimi açtıktan bu yana yazdığım herşeyi teste tutar oldum (: . array_map fonksiyonunu kullanırken elimi lambdaya alıştırabilmek amacıyla kullanmak istedim fakat aklıma bunun kaç defa oluşacağı  takıldı teste turarark oluşan  anonymous fonksiyon sayısını bulmam zor olurdu ben de hız testi yaptım fark görene kadar büyüttüm döngüyü 1.500.000 döngüde 1 saniye fark yakaladım galibimiz lambda (:

test yapacağımız diziyi oluşturalım

0
1
2
3
4
 $myArray=array();
    for($i=0;$i<150000;$i++)
    {
        $myArray[]=uniqid(md5(microtime()));
    }

ilk testi callbackname ve array_map ile yaptım ile yapalım. fonksiyonumuz ve testimiz.:

0
1
2
3
4
5
6
7
8
function myFunc($eleman)
    {
        return str_replace('a','b',$eleman);
    }
 
for($i=0;$i<10;$i++)
    {
        $yennidizi=array_map('myFunc',$myArray);
    }

İşlem Süresi : 7.572 sn

bir de lambda ile deneyelim

0
1
2
3
 for($i=0;$i<10;$i++)
    {
        $yennidizi=array_map(function($eleman){  return str_replace('a','b',$eleman);  },$myArray);
    }

İşlem Süresi : 6.897 sn

Şimdi aynı işlemleri bir de array_filter ile deneyelim. fonksiyonumuzu bool dönndürebilecek şekilde değiştirelim

0
1
2
3
 function myFunc($eleman)
    {
        return strpos($eleman,'as')&gt;=0;
    }

tesimiz :

0
1
2
3
for($i=0;$i<10;$i++)
    {
        $yennidizi=array_filter($myArray,'myFunc');
    }

İşlem süresi : 6.597 sn

lambda testi

0
1
2
3
 for($i=0;$i<10;$i++)
    {
        $yennidizi=array_filter($myArray,function($eleman){  return str_replace('a','b',$eleman);  });
    }

İşlem süresi : 5.81 sn

Leave a Reply

(required)

(required)


5 + four =

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

© 2012 Tufan Suffusion theme by Sayontan Sinha