Verhogen van perceived performance in Drupal 8 met BigPipe

4 min.

Hoe ervaart een gebruiker de snelheid van een website in tegenstelling tot hoe snel de website effectief is? Lees meer over actual performance vs perceived performance.

BigPipe op DrupalCamp Gent 2016 

Twee dagen boordevol talks lopende van basic site building tot gevorderde innovatieve code in de diepste hoekjes van Drupal. De sessie van Wim Leers over BigPipe in Drupal 8 stak er voor mij bovenuit.

Perceived performance vs actual performance 

Een zeer interessante talk over performance en vooral perceived performance, in Drupal 8. Perceived performance is hoe de gebruiker de snelheid van de site ervaart, in tegenstelling tot hoe snel de site effectief is (actual performance). Als backend developer is het altijd een streefdoel om een site zo performant mogelijk te maken en vooral ook zo te houden als de site groeit. 80 tot 90% van de performance is echter waar te nemen aan de frontend kant van de site, waar je als Drupal developer soms machteloos tegenover staat. De typische dingen zoals afbeeldingen optimaliseren, CSS/JS aggregeren, minifyen en het limiteren van HTTP requests is vaak net niet voldoende om een drupal site met veel dynamische data een snelle page load te geven.

Time to First Byte (TTFB) & Page load time

De snelheid van een pageload kan je verdelen in de Time to First Byte (de tijd die de server waar de site gehost is effectief nodig heeft om een response te zenden naar jouw request, het ‘surfen’ naar de site) en de Page load time (hoe lang het duurt om alle data die de server naar jou zendt binnen te trekken). Bij een default Drupal 7 site zie je tussen Time to First Byte (TTFB) & Page load time gewoon een wit scherm. De site verschijnt als het ware als een grote ‘blob’ op je scherm.

BigPipe vs traditional page load time

Het idee achter BigPipe is dat deeltjes van de weer te geven data al veel vroeger beschikbaar en effectief weer te geven zijn in plaats van het helemaal te laten verschijnen bij de Page load. De data ‘druppelt’ met andere woorden binnen.

Zo is de page header al zichtbaar na ~150 ms in plaats van ~350 ms.
Zo is de page header al zichtbaar na ~150 ms in plaats van ~350 ms.
Hoewel de uiteindelijke page load time nu mét of zonder BigPipe hetzelfde is, ligt de perceived performance veel hoger en voelt de website voor de bezoeker sneller aan.
Hoewel de uiteindelijke page load time nu mét of zonder BigPipe hetzelfde is, ligt de perceived performance veel hoger en voelt de website voor de bezoeker sneller aan.

BigPipe module downloaden in Drupal 8

In Drupal 8.1 is BigPipe inbegrepen in de core als experimental module, voor andere Drupal 8 versies kan de module gedownload worden via volgende link: d.o/project/big_pipe
Bovendien heeft BigPipe niets van configuratie nodig. Gewoon de module aanzetten en je ziet de perceived performance van je site onmiddellijk stijgen.