• 09-02-2008, 12:53:16
    #1
    Üyeliği durduruldu
    PHP'de kodlama yaparken yazım tarzımızdaki ufak değişikliklerle performansımızı arttırabiliriz.
    Bununla ilgili Türkiye PHP Grubu'nun sitesinde rastladığım bir makaleyi paylaşıyorum...)


    İlk uygulamalarımızı geliştirdikten bir süre sonra clean code ve hızlı çalışan scriptler yazamamış
    olmaktan endişe ederiz. Bu yazıda hızlı çalışan scriptler için bazı öneriler bulacaksınız.

    Öncelikle belirtmeliyim ki, PHP scriptlerinin hızlı çalışması için yapacağınız düzenlemeler çoğu
    kez kayda değmeyecek iyileştirmeler sağlar. Ama yine de kod yazma alışkanlıklarımızı geliştirmek
    fayda sağlayacaktır.

    YAZDIRMA KOMUTLARI

    İlk olarak bilmemiz gereken şey, PHP'de tek tırnak işaretlerinin string yani metin, çift tırnak
    işaretlerinin değişken içeren metin ve hiç tırnak kullanmamanın da yazı fonksiyonlarında değişken,
    değişkenlerde ise sayılar için kullanıldığıdır. Ayrıca işlemlerde öncelik belirleme durumları
    dışında parantezlerin öneminin olmadığını da unutmamalıyız. Örnekler:

    <?php
     $foo='bu bir metindir';
     $bar='Ahmet';
     $foo="Merhaba, $bar"; //Merhaba, Ahmet
     $foo='Merhaba, $bar'; //Merhaba, $bar
     $foo=10;
     ?>
    Eğer çift tırnak kullanırsanız PHP burada bir değişkeni dahil etmeye hazırdır. Oysa ki tek tırnak
    kullanırsanız, değişken okumak gibi bir durum söz konusu değildir. Dolayısı ile daha hızlıdır.
    Yani;

    echo 'bu bir metindir'; //daha hızlı
     echo "bu bir metindir"; //daha yavaş
    Bunun yanında bir değişkene çift tırnak içinde yer vermek yerine . ile eklemek de daha hızlıdır.
    Yani;
    $bar='Ahmet';
     echo $bar.', Merhaba'; //daha hızlı
     echo "$bar, Merhaba"; //daha yavaş
    Gereksiz yere echo veya print fonksiyonlarını kullanmak performans kaybına neden olur. Örnek;

    echo "Merhaba";
     echo "$bar"; //daha yavaş
     echo 'merhaba'.$bar; //daha hızlı
    Eğer yazdırılacak metin parça parça eklenecek ise, bunu önce bir değişkene eklemek sonra yazdırmak
    daha hızlıdır. Ancak tüm yazım işlerini böyle yaparsanız çok fazla değişken kullanarak hafızaya
    yüklenmiş olursunuz. Örnek;

    $metin='Merhaba';
     $metin.=$bar;
     echo "$metin"; //yavaş
     echo $metin; //en hızlısı
    Bir diğer konu da echo veya print fonksiyonlarının kullanımıdır. Prensip olarak echo ile
    yapabileceğiniz işi diğerleri ile yapmayınız. Çünkü echo sadece yazdırma işini yaparken print
    yazdırma işinin ardından true veya false olarak bir değer döndürür. Çoğu kez buna ihtiyacımız
    yoktur. printf veya printr ise gerekmedikçe kullanılmamalıdır.

    SORGULAR

    Veritabanı sorgularında performans açısından mümkün olduğunca çok işi SQL sorgusunda yapmak ve
    sorgu sayısını en az seviyede tutmak prensip olmalıdır. Yani veritabanından her hangi bir sınırlama
    yapmadan bilgi çekip sonra PHP ile if else operatörleri ile veriyi filtrelemek performans açısından
    olumsuzdur.

    PHP PARSER

    PHP parser HTML kodlarını kontrol etmez, dosyaya eklenen fonksiyon veya class ların kullanılsın
    veya kullanılmasın tümünü kontrol eder. Parser ve compilerın servis hızına göre

    HTML veya PHP olmayan kodlar //kontrol yok en hızlı
    Dosya içindeki PHP kodları //daha yavaş
    Fonksiyon ve sınıflar //daha da yavaş
    Include veya Require //en yavaş

    şeklinde işlenir. Buna göre;

    # Sık ve farklı dosyalardan çağrılmayacak kodlar için fonksiyon kullanmak
    # Kod yoğunluğundan dolayı bakım ve güncelleme zorluğu olmayan dosyalarda class kullanmak
    # Fonkisyonları çok sayıda harici dosyada tutup bunları sayfaya (çok sayıda) include etmek
    # HTML kodlarını PHP kodu içinde yazmak
    performans kaybına neden olur.
  • 09-02-2008, 14:13:30
    #2
    teşekkürler güzel anlatım olmuş emeğine sağlık