Merhaba Webkolog takipçileri!
Bugün sizlere web uygulamalarımızın hızını artırmak için kullanabileceğimiz harika bir araçtan bahsedeceğim: APC, yani Alternatif PHP Cache. Özellikle PHP tabanlı projelerde performansı ciddi anlamda iyileştiren bu eklenti, kodlarımızın derlenmiş hallerini ve verilerimizi bellekte tutarak tekrar tekrar işlenmesinin önüne geçiyor.
APC Nedir ve Neden Kullanmalıyız?
APC, PHP'nin PECL (PHP Extension Community Library) içinde yer alan bir önbellekleme eklentisidir. Temel olarak iki ana işlevi vardır:
- Opcode Cache (Derlenmiş Kod Önbelleği): PHP dosyaları her çalıştığında yorumlanır ve derlenir. APC, bu derlenmiş (opcode) halini bellekte saklar. Böylece aynı dosya tekrar istendiğinde, baştan yorumlama ve derleme adımlarına gerek kalmaz, direkt bellekten çalıştırılır. Bu, özellikle büyük ve sıkça erişilen projelerde inanılmaz bir hız artışı sağlar.
- User Data Cache (Kullanıcı Veri Önbelleği): Geliştiricilerin belirli verileri (örneğin veritabanı sorgu sonuçları, yapılandırma ayarları, oturum verileri vb.) manuel olarak önbelleğe almasına olanak tanır. Bu sayede veritabanına veya dosya sistemine yapılan gereksiz erişimler engellenir, uygulamanın tepki süresi kısalır.
Kısacası, APC sayesinde PHP kodlarınız daha hızlı çalışır ve uygulamanızın genel performansı gözle görülür şekilde artar.
APC Kurulumu
Linux İçin Kurulum
Linux tabanlı bir sunucuda APC kurulumu oldukça basittir:
sudo apt-get install php-apc
sudo /etc/init.d/apache2 restart
Bu komutlar, APC'yi kuracak ve Apache web sunucunuzu yeniden başlatarak eklentiyi aktif hale getirecektir.
Windows İçin Kurulum
Windows üzerinde APC kurulumu için birkaç adım izlememiz gerekiyor:
- Öncelikle PHP sürümünüze uygun APC sürümünü pecl.php.net/package/APC adresinden indirmeniz gerekiyor.
- İndirdiğiniz zip dosyasından php_apc.dll dosyasını PHP kurulumunuzdaki
ext
dizinine (örneğinC:/AppServ/php5/ext
) kopyalayın. - Ardından php.ini dosyanızı açın ve aşağıdaki satırı ekleyerek APC modülünü etkinleştirin:
extension = php_apc.dll
- Son olarak, kullandığınız web sunucusunu (Apache, Nginx vb.) yeniden başlatmanız gerekiyor.
PHP ile APC Kullanımı
APC'nin kullanımı oldukça basittir ve belirli fonksiyonlar aracılığıyla yapılır. İşte en sık kullanılan APC fonksiyonları:
Temel Fonksiyonlar
bool apc_store ( string $anahtar , mixed $degisken [, int $yasam_suresi = 0 ] )
: Belirtilen anahtara sahip veriyi önbelleğe alır.$yasam_suresi
parametresi, verinin kaç saniye önbellekte tutulacağını belirtir. Eğer0
girilir veya boş bırakılırsa, sunucu tarafındaki süre veya önbellek boşaltılana kadar hafızada tutulur.bool apc_add ( string $anahtar , mixed $değişken [, int $yaşam_süresi = 0 ] )
: Veriyi önbelleğe aynı anahtar ile sadece bir defa almak için kullanılır. Eğer aynı anahtara sahip bir veri zaten varsa, işlem başarısız olur (false
döner) ve mevcut veri güncellenmez.mixed apc_fetch ( string $anahtar [, bool &$durum ] )
: Belirtilen anahtara ait veriyi bellekten getirir. Eğer veri önbellekte yoksafalse
döndürür.bool apc_delete ( string $anahtar )
: Belirtilen anahtara ait veriyi bellekten siler.bool apc_clear_cache ([ string $önbellek_türü ] )
: Tüm önbelleği temizler. Eğeruser
değeri girilirse sadece kullanıcı önbelleği temizlenir.
Örnek Kullanım
İşte APC'yi PHP kodlarınızda nasıl kullanabileceğinize dair basit örnekler:
// Sunucunuzun APC'yi destekleyip desteklemediğini kontrol edin
if (function_exists('apc_cache_info') == false) {
die("Hata: Sunucunuzda APC desteği bulunmuyor.");
}
// Belleğe veri atma
apc_store('isim', 'İsmail');
apc_store('soyisim', 'Mantar');
// Bellekten veriyi çağırma ve ekrana yazdırma
echo apc_fetch('isim') . ' ' . apc_fetch('soyisim') . '<br>'; // Çıktı: İsmail Mantar
// Bellekteki bir veriyi güncelleme
apc_store('soyisim', 'Candan');
echo apc_fetch('isim') . ' ' . apc_fetch('soyisim') . '<br>'; // Çıktı: İsmail Candan
// apc_add ile veri eklemeye çalışalım (zaten 'isim' anahtarı mevcut olduğu için eklenmez)
if (apc_add('isim', 'Ahmet', 300)) {
echo "İsim başarıyla eklendi (bu satırı görmemelisiniz)<br>";
} else {
echo "'isim' anahtarı zaten mevcut olduğu için eklenemedi.<br>";
}
// Bellekten veri silme
apc_delete('isim');
apc_delete('soyisim');
// Silinen veriyi tekrar çekmeye çalışalım (false döner)
if (apc_fetch('isim') === false) {
echo "'isim' anahtarı başarıyla silindi.<br>";
}
SQL Sorgularında Kullanım Örneği
APC'nin en büyük avantajlarından biri de sıkça çalıştırılan veritabanı sorgularının sonuçlarını önbelleğe almaktır. Böylece her istekte veritabanına gitmek yerine, sonuçları önbellekten çekebiliriz:
// 'mesaj' anahtarına ait veri önbellekte var mı kontrol et
if (($bilgi = apc_fetch('mesaj')) == false) {
// Önbellekte veri yoksa, burası çalışır (örneğin veritabanından veri çekme işlemleri)
// Normalde burada bir veritabanı sorgusu veya uzun süren bir işlem olurdu
$bilgi = 'Bu metin veritabanından veya uzun bir işlem sonucunda alındı ve şimdi önbelleğe kaydedildi.';
// Veriyi 60 saniye süreyle önbelleğe al
apc_store('mesaj', $bilgi, 60);
echo 'Veri önbelleğe alındı ve veritabanı yükü azaltıldı.<br>';
} else {
echo 'Veri önbellekten getirildi.<br>';
}
// Veriyi kullan
echo $bilgi;
Bu örnekte, ilk çalıştırmada "Veri önbelleğe alındı" çıktısını göreceksiniz. Ancak 60 saniye içinde sayfayı tekrar yenilediğinizde, "Veri önbellekten getirildi" çıktısını göreceksiniz, çünkü veri veritabanına gidilmeden direkt APC'den çekilmiş olacak.
APC Monitörü
APC'nin bir diğer kullanışlı özelliği de, önbellek durumunu izleyebileceğiniz bir arayüze sahip olmasıdır. Bu monitör sayesinde önbelleğin ne kadar kullanıldığını, hangi anahtarların bulunduğunu ve performans istatistiklerini görebilirsiniz.
- Öncelikle pecl.php.net/package/apc bağlantısından güncel APC paketini indirin.
- İndirdiğiniz zip dosyasının içinde yer alan apc.php dosyasını web sunucunuzun erişebileceği bir dizine (örneğin projenizin kök dizinine) kopyalayın.
- apc.php dosyasını bir metin düzenleyici ile açın ve içinde tanımlı olan kullanıcı adı ve şifreyi kendi belirlediğiniz güvenli bir değerle değiştirin:
defaults('ADMIN_USERNAME','kullanici_adiniz'); defaults('ADMIN_PASSWORD','sifreniz');
- Tarayıcınızdan
http://localhost/apc.php
(veya dosyanızı kopyaladığınız dizine göre ilgili URL) adresine giderek APC monitörünüze erişebilirsiniz. Kullanıcı adı ve şifrenizi girdikten sonra önbellek durumunuzu detaylı olarak inceleyebilirsiniz.
APC, özellikle eski PHP sürümleriyle çalışan projeler için harika bir performans aracıdır. PHP 5.5 ve üzeri sürümlerde Zend Opcache gibi daha modern ve entegre çözümler bulunsa da, APC hala birçok projede aktif olarak kullanılmaktadır ve performansa önemli katkılar sağlamaktadır.
Umarım bu makale, APC'nin ne işe yaradığını, nasıl kurulduğunu ve projelerinizde nasıl kullanabileceğinizi anlamanıza yardımcı olmuştur. Performans optimizasyonu, her web geliştiricisinin üzerinde durması gereken önemli bir konudur.
Webkolog'u takipte kalın!
Hepinize bol kodlu ve keyifli öğrenme süreçleri dilerim!
0 yorum:
Yorum Gönder