1. Home
  2. Hosting
  3. PHP
  4. Ubrzajte PHP aplikacije pomoću opcode keširanja

Ubrzajte PHP aplikacije pomoću opcode keširanja

Za ubrzanje sajtova koriste se različite tehnologije keširanja. Ove tehnologije se primenjuju u različitim fazama: od generisanja HTML koda na serveru do prikazivanja stranice i njenih resursa u brauzeru korisnika.

Prilikom optimizacije vremena učitavanja stranice, najčešće se koriste tehnologije za keširanje koje rade na nivou aplikacije, kao što su Memcached i Redis, na nivou servera kao što je SuperCache i na nivou brauzera (keširanje u samom brauzeru).

Tehnologije keširanja na nivou aplikacije takođe imaju mogućnosti koje su specifične za programski jezik na kom je aplikacija napisana. Na primer, PHP aplikacije mogu da koriste PHP akcelerator OPcache, koji kešira, optimizuje i ubrzava proces obrade PHP skripti.

OPcache je podržan na svim hosting paketima kod SuperHosting.RS. Može da se aktivira ili deaktivira preko cPanel >> PHP Manager.

Šta je to opcode keširanje?

Opcode keširanje označava keširanje bajtkoda, koje je rezultat kompilacije izvornog koda PHP (source code). Bajtkod je niz operativnih kodova (operation codes) koji se nazivaju “opcodes“. Ove kodove/instrukcije izvršava PHP interpreter, kako bi se dobio konačni HTML kod koji se šalje brauzeru. Kako bi se uštedela konstantna compilacija PHP koda, bajtkod može da se kešira (opcode keširanje).

PHP interpreter (Zend Engine) obrađuje PHP kod u nekoliko koraka. Evo kako izgleda kod u index.php fajlu za WordPress na svakom koraku:

  • Interpreter čita PHP fajl sa diska.
Izvorni kod PHP aplikacije
Izvorni kod (source code) se nalazi u u fajlu index.php.
  • Interpreter skenira kod koji je u tekstualnom formatu, namenjen ljudskom čitanju i razumevanju i pretvara ga u bajtkod (instrukcije koje će interpreter razumeti)
Bajtkod PHP aplikacije
Bajtkod – instrukcije (opcodes) koje će interpreter da izvrši
  • Interpreter izvršava instrukcije (bajtkoda), a rezultat je HTML kod na stranici.
HTML kod koji se servira nakon izvršenja bajtkoda
HTML kod – rezultat izvršenja bajtkoda

Bajtkod za datu PHP skriptu je isti sve dok se PHP izvorni kod u datoteci ne promeni.

Koraci pre izvršavanja bajtkoda se prave svaki put kada se poziva PHP skripta, za svaki zahtev.

Prva dva koraka se mogu uštedeti čuvanjem već generisanog koda za kasniju upotrebu.

Keširanje bajtkoda štedi konstantnu kompilaciju PHP izvornog koda, što zauzvrat štedi procesorsko vreme i vreme čitanja sa diska. To se odražava na ubrzano izvršavanje PHP skripti, što zauzvrat doprinosi ubrzanom radu PHP aplikacije, tj. veb-sajta.

OPcache, APC, eAccelerator

Zend OPcache je PHP modul koji je dodat u PHP paket u PHP verziji 5.5. Ovaj modul predstavlja zamenu za zastarele PHP module, kao što su APC i eAccelerator. Za novije verzije PHP 7.x se preporučuje da ga aktvirate.

PHP akceleratori APC (Alternative PHP Cache) i eAccelerator su napušteni zbog projekata razvoja i podrške. Moguće ih je koristiti za PHP verzije pre 5.5.

Napomena: Tehnologije za keširanje bajtodova kao što su OPcache i tehnologije keširanja podataka kao što su Memcached i Redis imaju drugačiju svrhu i nezavisne su jedna od druge. OPcache ubrzava pristup i izvršenje koda, dok Memcached i Redis ubrzavaju pristup podacima (page cache, database cache, object cache). Obe vrste keširanja mogu da rade istovremeno i čak se i preporučuje njihova aktivacija kako bi se ubrzalo učitavanje veb-sajta.

Updated on 9. August 2022.

Was this article helpful?

Related Articles