OPcache je vestavěné rozšíření jazyka PHP, které si ukládá do paměti serveru už jednou přeložený programový kód. Zkratka OP znamená operation code, tedy strojové instrukce, na které se čitelný zdrojový kód před spuštěním převádí.

Bez OPcache to funguje takto: pokaždé, když někdo otevře stránku, musí server načíst soubory s kódem z disku, přečíst je a přeložit do podoby, které rozumí. A při dalším návštěvníkovi to celé znovu, i když se ani písmenko nezměnilo. OPcache tento překlad udělá jednou a výsledek si nechá stranou v operační paměti. Je to jako s receptem, který si kuchař jednou přepíše na tabuli nad plotnou místo toho, aby pro kuchařku běhal do knihovny při každé objednávce.

Na našich serverech je OPcache zapnutá a nemusíte pro to nic dělat ani nic nastavovat. Prakticky to znamená:

  • Rychlejší odezva webu – ušetří se práce, která by se jinak opakovala při každém načtení stránky.
  • Nižší zátěž serveru – méně čtení z disku a méně počítání, což ocení hlavně weby s větší návštěvností.
  • Automatická kontrola změn – server si v krátkých intervalech ověřuje, jestli jste soubory neupravili, a případně si je přeloží znovu. Po nahrání nové verze webu se změna projeví sama.

Nepleťte si OPcache s ostatními druhy vyrovnávacích pamětí. OPcache ukládá kód, tedy program samotný. Object cache ukládá data vytažená z databáze, aby se stejné dotazy neopakovaly. A obyčejná stránková cache ukládá hotovou stránku tak, jak ji vidí návštěvník. Každá pracuje v jiném patře a nejlepší výsledek dává jejich kombinace, jak popisuje heslo optimalizace webu.

Jedno upozornění pro vývojáře: protože OPcache drží kód v paměti, může se po ruční úpravě souboru na chvíli zobrazovat ještě starší verze, než si server změnu všimne. Jde o vteřiny, ale při ladění to dokáže zmást. Běžného uživatele WordPressu se to prakticky netýká.