Jak to działa
Przy pierwszym uruchomieniu skryptu PHP interpreter kompiluje go do bytecode - reprezentacji pośredniej zrozumiałej dla maszyny wirtualnej Zend Engine. OPcache zapisuje ten bytecode w pamięci operacyjnej serwera (RAM).
Przy kolejnych żądaniach serwer pomija etap kompilacji i odczytuje gotowy bytecode z pamięci. To znacząco skraca czas przetwarzania, szczególnie przy wielu jednoczesnych żądaniach.
Konfiguracja
OPcache jest dostępny jako rozszerzenie PHP od wersji 5.5. Kluczowe parametry konfiguracyjne to:
opcache.memory_consumption- rozmiar pamięci na bytecode (MB),opcache.max_accelerated_files- maksymalna liczba plików w cache,opcache.revalidate_freq- częstotliwość sprawdzania zmian w plikach (sekundy),opcache.validate_timestamps- czy sprawdzać timestampy plików.
Efekt wydajnościowy
- krótszy czas odpowiedzi serwera (TTFB),
- mniejsze obciążenie CPU,
- lepsze zachowanie pod obciążeniem (wielu użytkowników jednocześnie),
- szczególnie widoczna poprawa w aplikacjach z dużą liczbą plików PHP.
OPcache a dane aplikacji
OPcache cachuje bytecode PHP, nie dane aplikacji. Jednak jeśli dane są przechowywane w natywnych tablicach PHP (zamiast np. w JSON parsowanym przy każdym żądaniu), OPcache skutecznie utrzymuje je w RAM razem ze skompilowanym kodem.