Yeni Bir Kategorimiz Var Artık: ÖRNEK KODLAR
Sizler ne düşünüyorsunuz bilmiyorum ama internet dünyasında php dersleri ile ilgili bir sürü gerekli gereksiz bilgi var. Tam bir bilgi çöplülüğü yani. Ama en basitinden mail göndermek için bir kod aradığımızda, bulmakta bayağı bir zorlanıyoruz. Yani php dersleri başlığı altında bir çok yazı bulmak mümkünken, örnek php kod bulmak o kadar da kolay değil.
Ben de bu fikirden yola çıkarak web sitemde php örnek kodlarına da yer vermeyi düşündüm. Bu konuda çok büyük bir iddiam yok ama elimden ne geliyorsa paylaşacağım.
Sizlere ilk olarak "Benchmark Testi" uygulaması nasıl yapılır, onu öğreteceğim.
Ne İşimize Yarayacak?
Bazen kodlamalar yaparken, aklımıza birden fazla yol gelir. Bir de bakarsınız ki, iki yol da aynı kapıya çıkıyor. Acaba hangisini kullansam diye düşünürsünüz. İşimizi daha kısa sürede halledeni seçmek tabiki daha mantıklı. İşte bu noktada benchmark uygulamasına ihtiyaç duyuyoruz.
Nasıl Yapılır?
Benchmark uygulamasının şablonu şu şekilde olacak.
<?php function benchmark_testi () { $m_zaman = microtime(); $m_zaman = explode (" ",$m_zaman); $m_zaman = doubleval ($m_zaman[1]) + doubleval ($m_zaman[0]); return ($m_zaman); } $zaman1 = benchmark_testi (); /* Test edilecek fonksiyon buraya yazılacak. */ $zaman2 = benchmark_testi (); echo $zaman2-$zaman1; ?>
$zaman1 ve $zaman2 değişkenleri arasına test edeceğimiz fonksiyonu yazıyoruz.
Uygulamanın mantığı şöyle: Öncelikle benchmark_testi adında bir fonksiyon oluşturduk. Daha sonra $zaman1 değişkenine test başlamadan önceki zamanı atadık. Hemen sonrasında test edeceğimiz fonksiyon çalışacak. Test bittikten hemen sonra ise $zaman2 değişkeniyle son zamanı ölçtük. Son olarak ise iki zaman arasındaki farkı ekrana yazdırdık.
Örnek Bir Çalışma
Bunu bir örnekle gösterelim. Mesela for ile while döngüsünü karşılaştıralım. İlk olarak for döngüsünü test edelim.
function benchmark_testi () { $m_zaman = microtime(); $m_zaman = explode (" ",$m_zaman); $m_zaman = doubleval ($m_zaman[1]) + doubleval ($m_zaman[0]); return ($m_zaman); } $zaman1 = benchmark_testi (); for ($a=0; $a<99999; $a++) { $dizi[] = $a; } $zaman2 = benchmark_testi (); echo $zaman2-$zaman1;
Benim localhostta defalarca denemelerim sonucunda 0.07 sn civarı bir değer çıktı. Şimdi de while döngüsünü test edelim.
function benchmark_testi () { $m_zaman = microtime(); $m_zaman = explode (" ",$m_zaman); $m_zaman = doubleval ($m_zaman[1]) + doubleval ($m_zaman[0]); return ($m_zaman); } $zaman1 = benchmark_testi (); $a= 0; while ($a<99999) { $dizi[] = $a; $a++; } $zaman2 = benchmark_testi (); echo $zaman2-$zaman1;
Bu testte de süre 0.07 sn civarı çıktı. Yani, sonuç olarak hangisini kullanırsak kullanalım fark etmiyor. Keşke farklı bir şeyi test etseymişim yahu. İkisinin aynı çıkması bize pek birşey kazandırmadı. Ama en azından benchmark uygulamasının nasıl yapıldığını anlamışsınızdır. Zaten amacımız da bunu öğrenmekti, öyle değil mi.
Örnek kodları aşağıda verdiğim bağlantıdan indirebilirsiniz.
https://soulmy.net/uploads/blog/2019/01/benchmark-testi-uygulamasi.rar
İlk php kodumuz artık hazır. İlerleyen zamanlarda örnek kodlar paylaşmaya devam edeceğim. Başka bir yazıda görüşmek üzere. Kendinize iyi bakın.