PHP Performansını Arttırma Yolları

Published by: 0

Düşük kaynak kullanımı günümüzdeki uygulamalar için olmazsa olmazlardan biridir. İnternet uygulamaları için hangi dili kullanırsanız kullanın, projeniz büyüdükçe performans sorunları yaşamanız ve dolayısıyla giderleriniz artması kaçınılmazdır. Bu yazıda; PHP ortamında geliştirdiğiniz uygulamaları daha az kaynak tüketen bir hale getirmek için bazı ipuçları bulacaksınız.

Bir uygulamayı daha hızlı çalışabilmesi için yapılabilecekler temelde ikiye ayrılır:

  • Kodlama hatalarından kurtulmak.
  • Uygulamanın çalıştığı ortamı en uygun hale getirmek.

Sık Yapılan Kodlama Hataları:
PHP dili günümüzde en popüler web geliştirme ortamlarından biridir. İşinizi kolaylaştırabilecek hazır fonksiyonlar, iş yüküne ve projenin tamamlanma hızına önemli bir katkı sağlar ama doğru şekilde kullanırsanız. Fonksiyonları kullanırken dikkat etmeniz gereken şeylerden bazıları:

  • echo fonksiyonu print fonksiyonundan daha hızlı çalışır. echo sadece ekrana yazı basarken print fonksiyonu dizinin yanında 1 veya 0 değişkenleri döndürür.
  • Eğer sadece yazı yazdırmak istiyorsanız tek tırnak kullanmanız daha hızlı olacaktır. Çift tırnak kullanımında PHP dizinin içinde değişken arayacaktır.
  • Sadece değişkenleri yazdıracaksanız, bunları çift tırnak içine almaktansa sprintf fonksiyonu ile yazdırmak 10 kata kadar performans artışı sağlayabilir.
  • echo ‘Merhaba Dünya’ . $degisken; kullanımı echo “Merhaba Dünya $degisken”; kullanımından daha hızlıdır.
  • Bir döngü oluştururken, döngünün max sayısını döngü başlangıcında veya başlamadan hesaplamak, her döngüde tekrar hesaplatmaktan daha hızlıdır. for ($x=0; $x < count($array); $x) kullanımı $array değişkenini her döngüde tekrar hesaplayacaktır. Bunun yerine for($x=0,$total = count($array); $x<$total; $x++) şeklinde kullanmaya özen gösterin.
  • İşiniz bittikten sonra kullanmadığınız uzun değişkenleri sıfırlamak hafızanın boş yere meşgul edilmesini önleyecektir.
  • Mümkünse require_once() yerine require() kullanmaya özen gösterin.
  • include() ve require() kullanırken tam adres verin. İşletim sisteminin yolları hesaplamasını beklemekten daha hızlı olacaktır.
  • include() ve require() çalışma prensipleri bakımından aynıdır, sadece require() ile alınan dosya bulunamazsa kod çalışmayı durduracaktır. Çok ufak olsa da performans farkı vardır.
  • PHP5 ile gelen yeniliklerden biri olarak betiğin çalışmaya başlama zamanı $_SERVER[‘REQUEST_TIME’] ile bulunabilir. time() veya microtime() yerine kullanmanız daha hızlı olacaktır.
  • PRCE (preg_) düzenli ifadeleri EREG’den daha hızlıdır, yine de mümkünse daha hızlı olan str (strpos,strstr gibi) fonksiyonlarını tercih etmenizde fayda var.
  • XML ayrıştırırken xml2array kullanmaya çalışın, PHPnin XML fonksiyonları çok daha hızlı olacaktır.
  • str_replacepreg_replace‘den daha hızlıdır. str_replace fonksiyonu içinde array() kullanmak çoklu str_replace işleminden daha hızlı olacaktır.
  • else/if ifadeleri case/switch ifadelerinden daha hızlıdır.
  • @ işareti ile yapılan hata mesajı engellemeri kodun çalışma hızını yavaşlatır.
  • Sorgunuz bittikten sonra veritabanı bağlantılarınızı kapatın.
  • $tablo[“id”] kullanımı $tablo[id] kullanımından 7 kata kadar daha hızlıdır. Eğer tırnak kullanmazsanız, yorumlayıcı hangi alandan bahsettiğinizi tahmin etmek zorundadır.
  • Kısa PHP tagları kullanmamaya özen gösterin. kullanımı kullanımından daha hızlıdır.
  • PHP hata raporlamasında E_ALL yerine E_STRICT kullanmayı tercih edin. E_STRICT sizi sadece hatalı kodunuzu düzeltmeniz konusunda uyaracaktır.
  • Belli sayıdaki karakter içeren değişkenleri ayırt etmek için strlen yerine isset kullanın. if (!isset($foo{5})) gibi bir ifade daha hızlı olacaktır.
  • Önceden artırma veya azaltma işlemi, sonradan yapılana göre daha hızlı olacaktır. $i++ yerine ++$i şeklinde kullanmayı tercih edin.
  • Kendi fonksiyonlarınızı yazmak yerine PHP’deki hazır fonksiyonları kullanmaya özen gösterin. Aynı sonucu veren fonksiyonlar arasında PHP her zaman sizinkinden hızlı olacaktır.
  • Object değerini artırmak local bir değeri artırmaktan 3 kat daha yavaştır. $this->prop++ kullanımı yerine ++$propşeklinde kullanmaya özen gösterin.
  • Smarty gibi karmaşık tema motorlarını kullanmaktan kaçının.
  • Yazdığınız kodları Debugger araçları ile ölçün, hangi fonksiyonun daha hızlı çalıştığına karar vermek için büyük yardımı dokunabilir. XDebug gibi bir yardımcının elinizin altında bulunmasında fayda var.