PHP Cache hazırlama, sitenizin performansını arttırın

PHP cache, performans iyileştirmeÖncelikle cache nedir sorusuyla giriş yapalım. Cache, genel anlamda önbellekleme anlamına gelmektedir. Diğer bir ifadeyle, elde edilmesi zor olan bir veriyi bir kere hazırladıktan sonra bi yere not etme şeklinde açıklayabiliriz.

İster web siteniz hazır wordpress / phpBB / joomla gibi içerik yönetim sistemleriyle hazırlanmış olsun isterse kendi kodunuz olsun, sitenizde gösterdiğiniz blokları arttırmaya başladığınızda ister istemez veritabanı (Ör: MySQL) sorgularınız da artmaya başlar. Ayrıca çekilen bu verinin işlenmesi de bir script dili olan PHP'de oldukça uzun sürmektedir.

Caching (Önbellekleme) Kullanmayan kötü bir örnek

Konuyu biraz daha netleştirmek için, son dönemde kaşılaştığım en yavaş sitelerden birini örnek olarak açıklamak istiyorum. Sitenin ana sayfasına her tıkladığınızda yaklaşık 7-8 saniye sunucuda ana sayfanın oluşturulmasını bekliyorsunuz. Bu kullanıcı açısından kabul edilebilir birşey olmadığı gibi sunucu tarafı için de inanılmaz kötü bir durumdur. Düşünsenize, parasını ödediğiniz sunucu 7-8 saniye boyunca tek bir sayfanızı oluşturmak için uğraşıp duruyor =) Bu sırada diğer istekler gelse bile bilgisayar onlarla uğraşacak vakit bulamıyor.

Bu sitede önbellekleme kullanılsaydı neler değişirdi?

Şimdilik kısaca maddeler halinde özetleyelim. Aşağıdaki içeriği okudukça sorunu daha iyi anlayacaksınız.

- Oluşturulan sayfalar sadece bir kere oluşturulacak ve açılışlarda en fazla yarım saniye bekleyeceksiniz.
- Siteniz hızlı açıldığından google daha yukarılarda gösterecek, kullanıcıların sizi bulması kolaylaşacak
- Gelen kullanıcılar yavaşlıktan şikayet edip ayrılmayacak, siteizde sayfa gösterim sayısı artacak
- Sunucunuzun destekleyebileceği maksimum sayfa gösterim sayısı onlarca katına çıkacak
- vs. vs.

Gördüğünüz gibi, yukarıda saydığımız maddeler bir web sitesinin büyümesi aşamasında oldukçu önemli bir yere sahip. Basit birkaç işlem uygulayarak web sitenizin performansını arttırmak istiyorsanız, lütfen okumaya devam edin.

Hazır içerik yönetim sistemleri için performans arttırma

Bu kısımda elinizdeki sitenin wordpress/phpBB/joomla gibi hazır içerik yönetim sistemlerinden biriyle oluşturulduğunu düşünelim. Bu durumda kodu yönetmek sizin açınızdan oldukça zor olabilir. Yapılacak en iyi çözüm, internette bulabileceğiniz hazır önbellekleme eklentilerinden yararlanmak.

Wordpress için örnek vermek gerekirse WP Super Cache, W3 Total Cache, Quick Cache gibi eklentileri kullanabilirsiniz. tek yapmanız gereken admin panelinize girerek bu eklentileri indirmek ve ardından aktif hale getirmek. Bir anda sitenizin performansının kat ve kat iyileştiğini farkedebilirsiniz.

Kendi hazırladığınız site için önbellekleme işlemi

Bu kısımda anlatılanları yapabilmeniz için, koda oldukça hakim olmanız gerekmektedir. O yüzden baştan uyarayım =) Yapılması gerekeni öncelikle açıklayalım. Önbelleklemenin tanımından da anlaşıldığı üzere, sayfamızı güzel bir şekilde oluşturacağız. Yalnız oluşturduğumuz gibi hemen kullanıcıya göndermeyeceğiz. Öncelikle oluşturduğumuz bu sayfa kodunu bir yere önbellekleyeceğiz, yani kaydedeceğiz. Peki bunu nasıl yapacapız?

PHP için açıklamak gerekirse, öncelikle kodunuzun en başına aşağıda verilen kodu ekleyin:

< ?php
     if
(substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
         ob_start("ob_gzhandler");
     else
         ob_start();
?>

Yukarıda açıklanan kodun yaptığı işlemi maddeler halinde açıklayalım.
- Öncelikle hazırlanan kodu hemen karşıya göndermenizi önlüyor. Bu işlem performans açısından büyük fayda sağlıyor. Tüm kodu oluşturup bir kerede tek paket olarak karşıya göndermeniz daha iyi sonuç verecektir.
- Kodun sonunda elde edilen sayfanın tamamının koduna ulaşabiliyorsunuz. Sayfanın tamamının çalışması sonucu elde edilen koda ulaşmak istiyorsanız yapmanız gereken çok basit. Aşağıdaki kodu sayfanın en altında çalıştırın.

< ?php
    $html = trim(ob_get_flush());
   
echo $html;
?>

Böylece sayfa kodunu kullanıcıya göndermeden önce $html değişkenine almayı başarmış olduk. Madem tüm kodu elimize alabiliyoruz, o halde bu kodu dosyaya veya veritabanındaki bir tabloya da yazabiliriz. Peki yazmamız ne işe yarayacak. İşte geldik zurnanın zırt dediği yere =)

Diyelim ki $html değişkeni üzerinde oluşturulan bu kodu bir dosyaya kaydettiniz. Şimdi yapmanız gereken sayfanın en başında yaptığınız işlemi güncellemek. Artık, sayfayı yeniden mi oluşturalım yoksa elimizdeki dosyada yazanları mı kullanıcıya gönderelim şeklinde bir karar verebiliriz!! Yani

< ?php
    EĞER (DOSYA ERİŞİM ZAMANI < 1 GÜN)
        DOSYAYI OKU ve $html değişkenine yaz
        $html değişkenini ekrana bas
        ÇIKIŞ (exit)

?>

Ne diyorsunuz, bu işlemi uygulayabilecek misiniz? Denemekte yarar var ve bence hiç durmayın.

Bu yapı için hazırlanmış örnek bir kodu How to create your own PHP caching system? A simple example sayfasında bulabilirsiniz.



5 yıl 9 ay önce eklendi

Öğretmen ile ilgili şiirler Dünyaca ünlü bilim adamlarımız ve sanatçılarımız Egzama nedir, nasıl tedavi edilir? Oruç hakkında bilgiler Allah'ın İsimleri Türkiye'de Yıllara göre Bitkisel Üretim İstatistikleri Din Felsefesi Ünlü Matematikçiler ve Hayatları 3 Türk Bilim Adamları Türk Edebiyatı Türleri ve Türk Edebiyatının Temsilcileri Güzel sanat dallarında kullanılan malzemeler ve özellikleri Evdeki Karıncalardan Kurtulma Yolları Klavye Kısayolları PHP Cache hazırlama, sitenizin performansını arttırın Erozyon Nedir, Erozyon Nasıl Oluşur? Karınca yuvasının özellikleri, Karınca cumhuriyeti Extacy nedir? Dünyanın En Zehirli Hayvanları Dinimizde cinsellik ve sevişmek ispat: 1'den n'e kadar olan sayıların kareleri toplamı Linux tabanlı sistemlerde işinizi kolaylaştıracak bilgiler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23