Na przykład w przypadku witryn opartych na WordPress , Joomla lub Laravel , które nie zawierają treści specyficznych dla użytkownika, zaleca się przechowywanie wszystkich stron w statycznej pamięci podręcznej HTML i ponowne generowanie pamięci podręcznej tylko ręcznie (lub automatycznie) po wprowadzeniu zmian w zapleczu. Jednakże, jeśli strona zawiera dynamiczną zawartość, która zależy od sesji i plików cookie lub również od języka i lokalizacji, OPcache jest odpowiedni .
Tak zwany czas rozruchu dla wszystkich trzech wymienionych systemów wynosi ponad 100 ms ze świeżo zainstalowanym serwerem CentOS7 (z dyskiem SSD i PHP 7.1). Za każdym razem, gdy wykonywany jest skrypt PHP, musi on zostać wkompilowany w kod bajtowy w czasie wykonywania. OPcache implementuje teraz pamięć podręczną dla tego kodu bajtowego - jeśli ten sam skrypt PHP jest wykonywany przy następnym żądaniu, nie trzeba go ponownie kompilować. Po uruchomieniu OPcache ustalamy następujące ustawienia:
9006cec6c5d3d2498ee26c5bfd91590a
Czas wykonania (uśredniony z 10 wykonań) został teraz znacznie skrócony:
WordPress 4.7.4 | Joomla 3.7.0 | Laravel 5.4 | |
bez OPcache | 295 ms | 201 ms | 110 ms |
z OPcache | 54 ms | 59 ms | 13 ms |
Czynnik | 5,5 | 3,5 | 8,5 |
Ponieważ ustawiliśmy validate_timestamps na 0 i jednocześnie revalidate_freq na jeden dzień, pamięć podręczna prawie nigdy nie jest odbudowywana automatycznie (świadomie robimy to ręcznie). Z małym hakiem git , skrypt PHP jest wykonywany przy każdym „ściągnięciu”. Jak aktywować hak:
a1678610c8b4c7db5997375944183830
a1678610c8b4c7db5997375944183830
Poniższa funkcja pomocnicza jest również pomocna do pomiaru poszczególnych części kodu (lub całego czasu wykonania):
085f4291bbcc4e8a64bbea951ff49ab9
Jeśli chcesz uzyskać przydatne informacje, takie jak status, użyta pamięć lub liczba plików w pamięci podręcznej, możesz użyć tej funkcji PHP:
3f6309d04bc7e48dd909859321b96209
Aby skorzystać z OPcache w lokalnym środowisku programistycznym (co generalnie nie jest zalecane), używamy sztuczki.
OPcache jest aktywny na wszystkich serwerach, na których zainstalowany jest moduł OPcache i na których ustawienie opcache.enable nie jest jawnie ustawione. Zostawiamy to w ten sposób. W php.ini ustawiliśmy tylko opcache.validate_timestamps = 1. Oznacza to, że opcache.revalidate_freq = 2. Oznacza to, że OPcache jest rewalidowany prawie w sposób ciągły dla każdego projektu. W przypadku projektów, w których chcemy trwale aktywować OPcache, korzystamy z projektów projektowych w .htaccess następujące ustawienie:
1dd64a3f2fe4425b29b1409410fe3fc0
Następnie ponownie uruchamiamy serwer WWW i tworzymy następujący skrypt:
91fb5289160e410607c9ea89112a575b
Ten skrypt czyści pamięć podręczną i jednocześnie ją odbudowuje. Teraz ustawiliśmy polecenie RunOnSave związane z obszarem roboczym w naszym ulubionym edytorze VSCode:
91fb5289160e410607c9ea89112a575b