0Pricing
PHP Academy · Ders

OPcache: Bayt Kodu Önbellekleme

Tekrarlanan betik derleme yükünü ortadan kaldırmak için OPcache'i etkinleştirin ve ayarlayın.

OPcache: Bayt Kodu Önbellekleme, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.

PHP Normalde Nasıl Çalışır

OPcache olmadan her istek PHP'nin şu işlemleri yapmasına neden olur: diskteki .php dosyasını okumak, dosyayı bir AST'ye ayrıştırmak, işlem kodlarına (bayt koduna) derlemek ve ardından işlem kodlarını yürütmek.

OPcache Ne Yapar

OPcache, derlenmiş işlem kodlarını paylaşılan bellekte depolar. Sonraki isteklerde PHP, ayrıştırma ve derleme adımlarını atlayarak doğrudan yürütmeye geçer.

Performans Etkisi

OPcache, genellikle hiçbir kod değişikliği gerektirmeden PHP uygulamalarında 2-5 kat verim artışı sağlar.

OPcache'i Etkinleştirme

OPcache, PHP 5.5 ve sonraki sürümlerle birlikte gelir ve birçok dağıtımda varsayılan olarak etkindir. php -m | grep -i opcache ile denetleyiniz.

# php.ini:
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=0

Temel OPcache Ayarları

Üretim ortamı için şu ayarları düzenleyiniz:

# php.ini:
opcache.memory_consumption=256      ; MB of shared memory
opcache.interned_strings_buffer=16  ; MB for interned strings
opcache.max_accelerated_files=20000 ; max scripts to cache
opcache.validate_timestamps=0       ; disable for production!
opcache.revalidate_freq=0           ; how often to check timestamps

validate_timestamps=0

Üretim ortamında, her istekte dosya sistemi denetimlerini devre dışı bırakmak için validate_timestamps=0 ayarlayınız; PHP her zaman önbelleğe alınmış işlem kodunu kullanır. Dağıtımdan sonra önbelleği sıfırlayınız.

OPcache'i Sıfırlama

Yeni kodu dağıttıktan sonra önbelleği temizleyiniz.

<?php
opcache_reset(); // from a PHP script
// Or restart PHP-FPM:
$ kill -USR2 $(cat /run/php-fpm.pid)

opcache_get_status()

İsabet oranını ve bellek kullanımını izlemek için çalışma zamanında OPcache istatistiklerini sorgulayınız.

<?php
$status = opcache_get_status();
echo "Hit rate: ".$status["opcache_statistics"]["opcache_hit_rate"]."%";

Önceden Yükleme (PHP 7.4+)

OPcache, sunucu başlatılırken çerçeve dosyalarını paylaşılan belleğe önceden yükler; böylece temel sınıflar için ilk istekteki derleme ek yükü bile ortadan kalkar.

# php.ini:
opcache.preload=/srv/app/preload.php
opcache.preload_user=www-data

Tam Zamanında Derleme (PHP 8.0+)

PHP 8, OPcache üzerine Tam Zamanında (JIT) derlemeyi ekleyerek işlem kodlarını yerel makine koduna dönüştürdü. En büyük fayda CPU yoğun görevlerde görülür; tipik G/Ç ağırlıklı web uygulamalarındaki fayda ise sınırlıdır.

# php.ini:
opcache.jit_buffer_size=100M
opcache.jit=1255

Değişmez Sınıflar

OPcache, stajyer dizeleri ve değişmez sınıf tanımlarını çalışan işlemler arasında paylaşarak işlem başına bellek tüketimini azaltabilir.

Özet

Üretim ortamında validate_timestamps=0 ile OPcache'i etkinleştiriniz. Dağıtımlardan sonra opcache_reset() veya PHP-FPM yeniden başlatmasıyla önbelleği temizleyiniz. İsabet oranını opcache_get_status() ile izleyiniz.

Hızlı Kontrol

Maksimum OPcache performansı için üretim ortamında hangi php.ini ayarı 0 olmalıdır?

Sıkça Sorulan Sorular

“OPcache: Bayt Kodu Önbellekleme” dersi ücretsiz mi?

Evet — “OPcache: Bayt Kodu Önbellekleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.

“OPcache: Bayt Kodu Önbellekleme” dersinde ne öğreneceğim?

Tekrarlanan betik derleme yükünü ortadan kaldırmak için OPcache'i etkinleştirin ve ayarlayın. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

PHP Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“OPcache: Bayt Kodu Önbellekleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Xdebug ile PHP Profilleme
  2. OPcache: Bayt Kodu Önbellekleme
  3. Veritabanı Sorgularını İyileştirme
  4. Bellek Yönetimi ve Performans İpuçları
← PHP Academy Sayfasına Dön