🚀 Web hosting ultra-rapid de la doar 1€/lună!
HostPedia

Opcode Cache

Performanță
Definiție

Opcode Cache (cache-ul de opcode) este un mecanism specific PHP care stochează bytecode-ul compilat al scripturilor în memorie, eliminând necesitatea recompilării la fiecare cerere HTTP. OPcache, extensia oficială inclusă în PHP, poate îmbunătăți performanța aplicațiilor PHP cu 30-70% fără nicio modificare a codului sursă.

Opcode Cache este o optimizare fundamentală pentru orice aplicație PHP. În mod normal, PHP este un limbaj interpretat — la fiecare cerere, motorul PHP citește fișierele sursă, le parsează, le compilează în bytecode (opcode) și apoi le execută. Opcode cache-ul elimină primele trei etape pentru cererile ulterioare, servind direct bytecode-ul compilat din memorie.

OPcache (Zend OPcache) este extensia oficială de opcode cache inclusă în PHP începând cu versiunea 5.5. În PHP 8.x, OPcache este activat implicit și oferă funcționalități avansate precum JIT (Just-In-Time) compilation, care compilează bytecode-ul direct în cod mașină nativ pentru performanță și mai bună.

Configurarea OPcache se face prin directivele din php.ini. Cele mai importante setări includ: opcache.memory_consumption (memoria alocată, recomandat 128-256 MB), opcache.max_accelerated_files (numărul maxim de fișiere, recomandat 10000+), opcache.revalidate_freq (frecvența de verificare a modificărilor, 0 în development, 60+ în producție).

JIT compilation, disponibil din PHP 8.0, aduce îmbunătățiri suplimentare pentru operațiuni intensive CPU. Se activează prin opcache.jit_buffer_size și opcache.jit. Pentru aplicații web tipice, îmbunătățirea este moderată (5-15%), dar pentru calcule matematice sau procesare de date, câștigul poate fi substanțial.

Un aspect important este invalidarea cache-ului la deploy. Când codul PHP se actualizează, opcache-ul trebuie golit pentru a reflecta modificările. Aceasta se face prin opcache_reset() sau prin restartarea PHP-FPM. Majoritatea furnizorilor de hosting din România au OPcache activat implicit pe toate planurile.