Optimisasi boot OPCache PHP

Contone, kanggo situs web sing adhedhasar WordPress , Joomla utawa Laravel , lan ora duwe konten khusus pangguna, luwih becik disimpen kabeh kaca ing cache HTML statis lan mung gawe cache maneh kanthi manual (utawa kanthi otomatis) yen ana pangowahan ing backend. Nanging, yen kaca ngemot konten dinamis sing gumantung karo sesi lan cookie utawa uga basa lan lokasi, OPcache cocog .


Wektu boot sing diarani kanggo kabeh telung sistem kasebut luwih saka 100 ms kanthi server CentOS7 sing anyar (karo SSD lan PHP 7.1). Saben skrip PHP dieksekusi, kudu dikompilasi dadi bytecode nalika runtime. OPcache saiki ngetrapake cache kanggo bytecode iki - yen skrip PHP sing padha dileksanakake kanthi panjaluk sabanjure, ora prelu direkompilasi. Sawise ngaktifake OPcache, banjur atur setelan ing ngisor iki:

9006cec6c5d3d2498ee26c5bfd91590a

Wektu eksekusi (rata-rata luwih saka 10 eksekusi) saiki wis suda banget:

WordPress 4.7.4 Joomla 3.7 Laravel 5.4
tanpa OPcache 295 ms 201 ms 110 ms
karo OPcache 54 ms 59 ms 13 ms
Faktor 5,5 3,5 8,5

Amarga kita nemtokake validate_timestamp dadi 0 lan sekaligus nganyarke_freq dadi suwene sedina, cache meh ora bakal dibangun kanthi otomatis (kita kanthi manual nindakake iki kanthi manual). Kanthi kait git cilik, skrip PHP dieksekusi kanthi saben "narik". Cara ngaktifake pancing:

a1678610c8b4c7db5997375944183830

a1678610c8b4c7db5997375944183830

Fungsi helper ing ngisor iki uga migunani kanggo ngukur bagean kode individu (utawa kabeh wektu eksekusi):

085f4291bbcc4e8a64bbea951ff49ab9

Yen sampeyan pengin entuk informasi sing migunani kaya status, memori bekas utawa nomer file cache, sampeyan nggunakake fungsi PHP iki:

3f6309d04bc7e48dd909859321b96209

Kanggo entuk bathi saka OPcache ing lingkungan pangembangan lokal (sing umume ora disaranake), kita nggunakake trik.

OPcache aktif ing kabeh server sing wis nginstal modul OPcache lan setelan opcache.enable ora disetel kanthi jelas. Kita ninggalake cara kasebut. Kita mung nyetel opcache.validate_timestamps = 1 ing php.ini. Iki tegese opcache.revalidate_freq = 2. Iki tegese OPcache divalidasi meh terus-terusan kanggo saben proyek. Kanggo proyek sing pengin diaktifake kanthi permanen OPcache, kita nggunakake proyek sing gegandhengan ing .htaccess setelan ing ngisor iki:

1dd64a3f2fe4425b29b1409410fe3fc0

Banjur kita miwiti maneh server web lan nggawe skrip ing ngisor iki:

91fb5289160e410607c9ea89112a575b

Skrip iki ngresiki cache lan dibangun bebarengan. Saiki kita nyetel prentah RunOnSave sing gegandhengan karo workspace ing editor favorit VSCode:

91fb5289160e410607c9ea89112a575b

Bali