Tüm Sayfalar / 68 - OPcache
68 / 161
PHP Hizlandirma

OPcache

PHP kodunu bytecode'a donusturme

Biz Ne Yaptik?

OPcache aktif ettik. PHP kodu normalde her istekte yeniden okunur ve derlenir. OPcache ile kod bir kez derlenir, sonucu bellekte saklanir.

Muzibu'da 2,847 PHP dosyasi var. Her sayfa yuklenmesinde bunlarin bir kismi calisir. OPcache olmadan her seferinde ayni islemi tekrarlarsiniz.

Sonuc: PHP 3-5 kat hizlandi. Sunucu %40 daha az CPU kullaniyor.

OPcache Kapali
150 ms
Her istekte PHP derlenir
OPcache Acik
30 ms
Derlenmi bytecode kullanilir

Arkada Ne Oluyor?

Derleme Sureci

.php
Derle
Bytecode
RAM

OPcache Ayarlari

opcache.memory_consumption 256
opcache.max_accelerated_files 10000
opcache.validate_timestamps 1
opcache.revalidate_freq 60

Neler Onbellekleniyor?

Laravel core
Vendor paketleri
Controller dosyalari
Model dosyalari
Middleware
Service Provider

Admin Panelden Ne Görebilirsiniz?

OPcache Temizleme

Ayarlar > Cache > OPcache Reset

Bellek Durumu

Dashboard > Sistem > OPcache

Onbellekli Dosyalar

Dashboard > OPcache > Dosya Listesi

Hit Orani

Dashboard > Performans

Arkaplanda Neler Çalışıyor?

PHP dosyası ilk kez çalıştırıldığında OPcache devreye girer. Kaynak kod derlenir, bytecode'a dönüştürülür ve bellekte saklanır.

Dosya Okuma

PHP index.php çalıştırılır. Zend Engine dosyayı diskten okur ve lexer ile token'lara ayırır.

Parsing

parser token'ları AST (Abstract Syntax Tree) yapısına dönüştürür. Sözdizimi kontrolü yapılır.

Derleme

compiler AST'yi opcode'lara çevirir. Her PHP komutu için Zend VM instruction'ı oluşturulur.

Belleğe Alma

OPcache derlenmiş bytecode'u shared memory segmentine yazar. opcache.memory_consumption MB ayrılır.

Sonraki İstekler

Aynı dosya tekrar istendiğinde disk okuma ve derleme atlanır. Bytecode direkt bellekten Zend VM'e gönderilir.

Revalidation

revalidate_freq saniyede bir dosya değişikliği kontrol edilir. Değiştiyse yeniden derlenir.

Bu Sayfanın Anahtar Terimleri

OPcache

PHP kodunu bytecode'a dönüştürüp bellekte saklayan sistem.

Bytecode

PHP'nin anlayacağı ara dil. Kaynak kodu işlemeden çalışır.

Preloading

PHP başlarken belirli dosyaların önceden yüklenmesi.

JIT

Just-In-Time compilation. PHP 8+ ile gelen ekstra hız.

PHP Bytecode Donusumu
.php
opcode
2,847
PHP Dosyasi
99.2%
Hit Orani
Bellek Kullanimi
187
MB / 256 MB
150ms
Oncesi
30ms
Sonrasi
5x Hizli