PHP Optimizasyon İpuçları

  • echo fonksiyonu print‘den daha hızlıdır (alıntı)
  • Eğer sadece bir string çıktısı verecekseniz tek tırnak kullanın. Çünkü çift tırnak kullandığınızda derleyici öncelikle içinde değişken ya da özel karakter arayacaktır (alıntı)
  • Değişkenleri yazdırmak için tırnaklarla ayırmak yerine sprintf() kullanın, 10 kat kadar daha hızlıdır (alıntı)
  • Sıralanmış string yerine birden fazla parametreli echo kullanın (alıntı)
  • Döngü kontrolü içinde fonksiyon kullanmaktan kaçının. Çünkü döngü her bir iterasyonda o fonksiyonu çalıştırıp zaman kaybedecektir (alıntı)

    Yanlış örnek:

    for ($i = 0; $i < count($array); $i++) {
    	//stuff
    }

    Doğru örnek:

    $count = count($array);
    for($i = 0; $i < $count; $i++) {
    	//stuff
    }
  • Büyük veri setlerini tuttuğunuz değişkenleri kullandıktan sonra bellekte yer açmak için unset() edin ya da null’a eşitleyin (alıntı)
  • __get, __set, __autoload gibi bazı sihirli metotları gerekmedikçe kullanmaktan kaçının (alıntı)
  • Mümkün olduğu sürece require_once() yerine require() kullanın (alıntı)
  • include() ve require() fonksiyonları ile beraber full path (tam dosya yolu) kullanın ki derleyici doğru yolu bulmak için zaman kaybetmesin (alıntı)
  • str_replace() fonksiyonu preg_replace()‘den daha hızlıdır. Ama bazı büyük veri setlerinde strtr() daha iyi sonuç verebilir
  • else if‘ yapısı switch-case yapısından daha hızlıdır (alıntı)
  • @ ile hata gösterimi engelleme çok yavaştır (alıntı)
  • Bandwidth kullanımını düşürmek için Apache v2’de mod_deflate‘i açın (alıntı) ya da Apache v1 için mod_gzip‘i deneyin (alıntı)
  • İşiniz bittiğinde veritabanı bağlantınızı kapatın (alıntı)
  • $row[‘id’] şeklinde kullanım, $row[id] kullanımından 7 kat daha hızlıdır. Çünkü ikinci kullanımda derleyici sabit kontrolü de yapacaktır (alıntı)
  • Short open tag (< ? ) yerine standart tagı < ?php ... ? > kullanın (alıntı)
  • PHP script’leri cache’lenmedikleri sürece her çalıştırdıklarında tekrar derlenirler. Performansı artttırmak için PHP cacheleme ürünleri kullanın (APC, eAccelerator, Turck MMCache vb.)
  • strlen() yerine isset() kullanın.

    Kötü örnek:

    if (strlen($foo) < 5) { 
    	echo "Foo is too short"; 
    }
    

    İyi örnek:

    if (!isset($foo[5])) { 
    	echo "Foo is too short"; 
    }
    

    (alıntı)

  • Eğer yerli bir PHP fonksiyonu varsa kendi fonksiyonunuzu yazmak yerine onu kullanın, çünkü o daha hızlıdır. Eğer fazla kaynak tüketen bir fonksiyon ise C eklentisi ya da modül yazın (alıntı)
  • Xdebug debugger gibi profiler kullanın. Böylece kodunuzun hangi kısımları ne kadar zaman alıyor, ne kadar kaynak tüketiyor takip edebilirsiniz (alıntı)
  • Kodunuzla ilgili döküman yazın (alıntı)
  • İyi kod ile kötü kod arasındaki farkı öğrenin (alıntı)
  • Kod standartları kullanmak hem sizin başkalarının kodlarını anlamınızı hem de başkalarının sizin kodunuzu anlamalarını kolaylaştırır (alıntı)
  • Yerel bir değişkeni arttırmak, sınıf içindeki bir özelliği arttırmaktan (örn. $this->prop++) 3 kat daha hızlıdır (alıntı)
  • Her şey nesne olmak zorunda değildir. Gerekmiyorsa kullanmayın (alıntı)

Kaynak: http://www.hm2k.com/posts/50-php-optimisation-tips-revisited