Preloading in PHP maakt je PHP 7.4 websites met OPcache sneller. Lees alles over preloading, shared memory, process memory en OPcache.
Wat is OPcache?
Je moet eerst weten wat OPcache is om preloading te begrijpen. Met OPcache wordt PHP-code één keer 'uitgerekend' en daarna opgeslagen. Na het opslaan van de gecompileerde code hoeven bezoekers niet meer te wachten: OPcache serveert de gecompileerde code in één keer uit. OPcache maakt de gemiddelde website flink sneller!
Vergelijk OPcache met een rekensom: als je het antwoord op 5x5 moet weten, moet je de eerste keer 5x5 uitrekenen (compileren). Na een seconde of twee heb je de som uitgerekend en weet je het antwoord. Daarna hoef je de rekensom niet meer opnieuw uit te rekenen: je hebt het ten slotte onthouden van de vorige keer.
Zo werkt OPcache ook: PHP-code wordt één keer uitgerekend. Daarna slaat de server het resultaat op in het geheugen. Daarna geeft PHP direct antwoord, want de code is de vorige keer al uitgerekend en opgeslagen.
Wist je dat OPcache standaard ingeschakeld is? Op ons high-performance hosting-platform worden allerlei technieken toegepast om websites zo snel mogelijk te maken. Zo ook OPcache!
Geen relaties in OPcache
Nu je weet wat OPcache is, duiken we iets dieper de techniek in. Alle bezoekers moeten dezelfde data uit de cache te zien krijgen. OPcache moet dus toegankelijk zijn voor alle PHP-processen. Daarom wordt de OPcache opgeslagen in het gedeelde geheugen ('shared memory') waar alle PHP-processen toegang tot hebben.
OPcache in het gedeelde geheugen opslaan heeft een nadeel. Stel dat OPcache een class genaamd Toetje
cached. Als deze class afhankelijk is van de class Avondeten
, dan 'linkt' OPcache deze classes aan elkaar door de cache van het gedeelde geheugen naar het PHP-proces-geheugen te verplaatsen. Voor iedere request berekent OPcache relaties tussen onder andere classes opnieuw. Dat kan sneller!
Preloading voordelen in PHP 7.4
Hier komt preloading om de hoek kijken. In tegenstelling tot OPcache berekent preloading relaties één keer. Linken gebeurt dus niet meer voor iedere request: snelheidswinst dus!
Om gebruik te maken van preloading, specificeert de website-beheerder één PHP-script. Dit script laadt de bestanden op zijn beurt in OPcache.
Daarnaast verloopt de preloading cache pas bij het herstarten. OPcache controleert voor iedere request namelijk of de cache verouderd is. Wijzigingen in preloaded code worden daarentegen pas actief na het herstarten van PHP.
Bestanden die niet vaak wijzigen én vaak aangeroepen worden zijn ideaal om te preloaden. Laravel- en Symfony-gebruikers kunnen ervoor kiezen om alle bestanden van het framework in de cache op te nemen. 'Core files' van frameworks veranderen over het algemeen alleen bij updates, en zijn een groot deel van een applicatie.
Preloading bij Cyberfusion
Op ons platform kun je PHP-instellingen per website aanpassen. Waarschijnlijk wordt preloading één van deze opties. Je kunt dan zelf een preloading-script opgeven. Tegen die tijd helpen onze experts graag met preloading-scripts voor gangbare CMS-en zoals WordPress en Joomla. Zodra PHP 7.4 op ons platform wordt uitgerold, bloggen we hier weer over!
Ook interessant
Cyberfusion is verhuisd naar de Eindhoven Tower |
||||||||||||
|
||||||||||||
Op 1 juni zijn we verhuisd naar de Eindhoven Tower! We hebben het iconische Evoluon ingeruild voor een nieuwe basis tegenover Eindhoven Centraal station. |
||||||||||||
Lees verder » |
IPv6 als standaard: we gaan je actief informeren! |
||||||||||||
|
||||||||||||
Vanaf juni informeren we partners proactief over IPv6. Als websites geen AAAA-record hebben, gaan we helpen bij de implementatie van IPv6. |
||||||||||||
Lees verder » |
NGINX op clusters: nóg snellere sites! |
||||||||||||
|
||||||||||||
Nieuw op 100% uptime Cyberfusion clusters: NGINX én Apache webservers zijn nu beschikbaar! Serveer content óók tijdens bezoekerspieken razendsnel! |
||||||||||||
Lees verder » |