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')>=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







