Skip to content

April 17, 2012

9

PHP Hızlandırıcılar (PHP Accelerators)

php-accelerators

Merhaba arkadaşlar, bu yazımızda PHP projelerimizi hızlandırmada önemli bir rol oynayan PHP hızlandırıcıları (PHP Accelerators) inceleyeceğiz.

Normal bir sitenin herhangi bir sayfasına istek yaptığınızda include edilen ve çalıştırılan yüzlerce .php dosyası olur. Ve bu dosyaların toplam boyutu bazen 10’larca bazende 100’lerce mb olabilir. Siteniz yüksek trafik alıyorsa (çok daha fazla sayfa göstermi olacağından) sunucu kaynaklarını verimli kullanmak adına opcode caching yapan PHP hızlandırıcılarını kullanma zamanı gelmiş olabilir.

PHP Hızlandırıcı Nedir ?

PHP hızlandırıcısı sadece kendinize ait bilgisayar / sunucunuza kurulabilen, düşük maliyetli, hızlı implemente edilebilir ve  (şimdilik) eklenti olmasına rağmen oldukça stabil çalışan PHP eklentisidir.

Ayrıca PHP hızlandırıcıları Memcache, Redis gibi sunucularının memory caching/key-value memory storage işlerinide (dağıtık yapıda çalışma vb. özelliklerini desteklememekle beraber) yapabilir.

PHP Hızlandırıcı Nasıl Çalışır ?

PHP hızlandırıclarını iki ayaktan oluşan bir yapı olarak düşündüğümüzde; ilk ayağı PHP yorumlayıcısı ile depolama birimi (disk vs) arasında ikinci ayağını ise php yorumlayıcısı ile işletim sistemi arasında çalışan bir program olarak nitelendirebiliriz.  Bu hızlandırıcılar derlenip çalıştırılan PHP dosyalarını (çıktılarını değil) bellekte opcode (wiki: en) olarak tutar. Bir sonraki çalıştırmada ise okuma, ayrıştırma (parsing) ve derleme işlemlerini atlayarak kodun direkt çalıştırılmasını sağlar.

PHP hızlandırıcılarının dosya çıktısını değil betikleri belleğe aldığına örnek olarak;  bir PHP dosyası rastgele bir değer üretiyorsa APC ‘den çalıştığında da rastgele değer üretir. Bunu hızlandırıcıları incelerken örneklerle ele alacağız.

PHP yorumlayıcısı tarafından işlenen dosyaları bellekte tutmakla birlikte dosyanın değişmesi / silinmesi halinde bellekte bulunan kopyasını günceller. Dolayısıyla sizin ayrıca bellekte bulunan dosyaları yönetmenize gerek kalmaz.

PHP Hızlandırıcının Avantajları ?

PHP dosyalarının (kodlarının) her çalıştırılmada tekrar tekrar okunması, ayrıştırılması, derlenip opcode ‘a çevrilmesini engellediği için kodların çalıştırılma sürelerini gözle görülür derecede düşürür. Ayrıca derlenmiş kodu bellek (ram) üzerinde tuttuğundan disk okumalarını (i/o) azaltarak performans kazandırır.

Kullanım İçin Gereksinim / Sınırlandırmalar Nelerdir ?

PHP hızlandırıcıları kullanmak için yazının giriş bölümünde de bahsettiğimiz gibi paylaşımsız bir sunucuya (dedicated server) ihtiyaç vardır. Yani paylaşımlı hosting üzerinde PHP hızlandırıcı kullanmanız neredeyse imkansızdır. Tabi ki kendi bilgisayarınızda rahatlıkta kurup kullanabilirsiniz.

Ayrıca her hızlandırıcının istediği minimum PHP versiyonu olacaktır. Bunları ilerleyen yazılarda inceleyeceğiz. Bunun dışında derlenmiş PHP dosyalarının tutulacağı PHP dosyalarınızın boyutlarıyla oranlı bellek alanı gerekecektir.

PHP Hızlandırıcıları Koda Nasıl Entegre Edilir ?

Opcode caching için PHP hızlandırıcılarını sunucuya kurup aktif ettikten sonra koda entegre etmek için hiçbir değişiklik yapmanıza gerek yoktur.

Yaygın Kullanılan PHP Hızlandırıcıları

Yaygın olarak kullanılan PHP hızlandırıcıları (sırasız olarak) şunlardır;

  • APC (Alternative PHP Cache)
  • eAccelerator – proje devam etmiyor
  • ionCube PHP Accelerator – proje devam etmiyor
  • XCache
  • Zend Optimizer+

Sonuç

Alternative PHP Cache (APC) Kurulum ve KullanımıXCache Kurulum ve Kullanımı ve Zend Optimizer+ Kurulum ve Kullanımı başlıklı yazılarımızda görüşmek üzere bol optimizasyonlu günler diliyoruz.

Kaynaklar

PHP Accelerator – Wikipedia

Toplam 9 Yorum Yorum Yaz
  1. Coşkun Soysal
    Apr 24 2012

    Web dünyasının kanayan yarası olan performans problemine çok derli toplu bir yaklaşım olmuş.

    Diğer yazılar ile desteklendiğinde güzel bir yazı dizisi olacağına eminim.

    Reply
  2. Nusret Baykan Belirdi
    May 13 2012

    wincache listede yok. Nedenini öğrenebilir miyim? O da bir PHP hızlandırıcı değil mi ?
    Saygılar.

    Reply
  3. hakan tunç
    Dec 22 2012

    memcahce ?

    Reply
    • Jan 25 2013

      Merhaba Hakan bey,

      Memcache bir PHP hızlandırıcı olmadığı gibi PHP ‘ye özgü de değidlir.

      APC, eAccelerator, XCache vb. hızlandırıcılar sadece PHP ile çalışır (başka dillerle çalışıyor olsa bile adı bu değidlir). Ancak Memcache hemen her dille çalışan API ları mevcuttur.

      Reply
  4. Hüseyin Çatlarkaya
    Feb 19 2019

    Bildiğim kadarı ile Zend php’nin güncel sürümünde (7 serisi) gömülü geliyor.
    Buna rağmen APC vb bir şey kurmanın gereği mantığı var mı? Bir hız kazancı sağlar mı?

    Reply
    • Dec 9 2020

      Merhaba Huseyin,

      Bu yazi aslinda eski surumler icin gecerli. Artik ayrica APC yuklemenin bir avantaji olmayacaktir.

      Reply

Trackbacks & Pingbacks

  1. Alternative PHP Cache (APC) Kurulum ve Kullanımı | Mustafa KIRIMLI
  2. XCache Kurulum ve Kullanımı | Mustafa KIRIMLI
  3. PHP Hızlandırıcılar (PHP Accelerators) | ALİ ÇAKAR BLOG

Leave a Reply to admin

(gerekli)
(gerekli)