PHP 8, performans optimizasyonu için yeni özellikler sunar ve "JIT" (Just In Time) derleme adı verilen, komut dosyalarının çalışma hızını artıran yeni bir fonksiyona sahiptir.
Saf yorumlanan programlama dilleri, bir derleme aşamasına sahip değildir ve kodu doğrudan sanal makinede çalıştırır. PHP dahil çoğu yorumlanan dil, performansı artırmak için aslında hafifletilmiş bir derleme aşamasına sahiptir.
Öte yandan, ileri derlemeli (AOT) diller kodun çalıştırılmadan önce derlenmesini gerektirir.
JIT (Just In Time) derleme, çalıştırma sırasında kodun bir kısmını veya tamamını derleyen, yorumlayıcı ve ileri derleme arasında hibrit bir modeldir. Bu sayede geliştiricinin kodu manuel olarak derlemesine gerek kalmaz.
Bu seçenek, opcache modülü ile yönetilir. Bu modül, komut dosyalarının hızını artırmak için tasarlanmıştır ve JIT’in etkinleştirilmesi, komut dosyalarının daha da hızlı çalışmasını sağlar.
Performans artışını gösteren karşılaştırmalı grafik.
Örneğimizde PHP 8.3 kullanacağız.
1. Modülün Mevcut Olduğunu Kontrol Edelim
php8.3 -m | grep OPcache
Çıktıda, OPcache modülü genel bölümde ve Zend modülleri bölümünde iki kez görünebilir. Bu, etkin olduğunu gösterir.
1.1 Etkin Değilse, Etkinleştirelim
Örneğimizde Debian 12 kullanıyoruz, yollar farklı olabilir.
nano /etc/php/8.3/fpm/conf.d/10-opcache.ini
; php opcache modülü için yapılandırma
; öncelik=10
opcache.enable=1
opcache.revalidate_freq=0
opcache.validate_timestamps=1
opcache.max_accelerated_files=10000
opcache.memory_consumption=192
opcache.max_wasted_percentage=10
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1
zend_extension=opcache.so
opcache.jit=on
1.2 Modülü php ayarlarında etkinleştirelim
nano /etc/php/8.3/fpm/php.ini
Konfigürasyon satırlarının en sonuna ekleyin:
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.jit_buffer_size=256M
opcache.jit=1235
1.3 fpm’i Yeniden Başlatalım
service php8.3-fpm restart
service php8.3-fpm status
1.4 Modülün Yeniden Mevcut Olduğunu Kontrol Edelim
php8.3 -m | grep OPcache
1.5 Bir Komut Dosyası ile Kontrol
Aşağıdaki içeriğe sahip bir php dosyası oluşturun
touch info.php
nano info.php
<?php
phpinfo();
?>
Tarayıcıda http[s]://domain.tld/info.php adresinden komut dosyasını açın ve opcache ayarlarını bulmak için Ctrl + f ile arama yapın.
Bu satırlar, OPcache modülünün ve JIT eklentisinin etkin olduğunu gösterir.