Preloading in PHP 7.4 uitgelegd!

Leestijd
2 minuten
Auteur
William Edwards
Datum
21 november 2019

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.

Shared memory en process memory voor preloading
Gedeelde geheugen ('shared memory') wordt gedeeld tussen PHP-processen

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.

Preloading script voorbeeld (bron: https://wiki.php.net/rfc/preload)

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
CyberNOC 2.0 ziet het levenslicht!
Leestijd
2 minuten
Auteur
William Edwards
Datum
4 november 2019

CyberNOC, de statuspagina van Cyberfusion, heeft een grote update gekregen. De software CyberStatus hebben we in-house ontwikkeld.

Laravel-based open sourced knowledge base released!
Leestijd
2 minuten
Auteur
Cyberfusion
Datum
24 september 2019

We have released the Laravel-based, open source Cyberfusion knowledge base into the wild! With 2FA, user management, and knowledge base content management.

Veilig zonder downtime: Linux-kernel patching uitgelegd
Leestijd
3 minuten
Auteur
William Edwards
Datum
9 september 2019

De Linux-kernel vormt de basis voor allerlei systemen. Door de complexiteit van de kernel komen er geregeld patches uit die wij zonder downtime doorvoeren.

Direct Contact

Meer informatie? Neem direct contact op!

icon-phone

Bel nu: 040 - 711 44 96

icon-mail

Mail nu: sales@cyberfusion.nl