Cyphax schreef op donderdag 14 augustus 2014 @ 15:12:
[...]
Dus Tweakers is zo'n snelle site omdat de devvers er een snelle site van hebben gemaakt?
Ik zie bij een request Via: Varnish terugkomen. Dat lijkt me een hele belangrijke factor. Mijn ervaringen met Varnish zijn ook dat het de sloomste pagina bloedsnel maakt. Iets minder dynamisch over het algemeen, maar bizar snel.
Varnish doet helemaal niets met de dynamische pagina's, alleen doorgeven. Varnish cached wel de images, css en javascript en die geeft hij dan ook vlotjes door aan de gebruikers. Verder is onze code gewoon behoorlijk snel. Op NewRelic staan we vrijwel altijd in de top-5 snelste websites in onze groep. Soms baal ik wel van al die dynamische pagina's want die zijn niet te cachen
Maar een van de allerbelangrijkste dingen om een site goed en snel op een langzame verbinding weer te geven is goede clientside caching. Als je tweakers 2x opvraagt dan zul je zien dat bij die tweede keer je maar 5 requests doet. 1 keer op de frontpage, 2 op een google-analytics script, 1 op een bannerboer en 1 op webtrekk analytics. En die laatste 4 gebeuren asynchroon.
Dus de pagina kan al gerenderd worden zodra de frontpage binnen is; wat gemiddeld ~60KB is die na ~60ms je kant op komt. Op een smallband met 0,4 (mbit?) dus ~50KB/s kost het je dus gemiddeld 1,2 seconde om de data binnen te krijgen en dan kan de pagina weergeven worden. Verder gebruiken we niet standaard https, dus je hebt (in het ergste geval) maar 42 roundtrips nodig over een langzame verbinding.
Als ik op google een refresh doe, dan wil hij 140KB aan data binnenhalen voor de frontpage. Wat ook nog eens over over SSL gaat. Dus om de connectie op te zetten heb je al een aantal RTT's nodig en daarna kost het je minimaal 2,8 seconden en (in het ergste geval) 94 roudtrips om de data binnen te halen. Daarna kan je browser pas gaan renderen.
Maar als je dan ook nog eens ingelogt bent op google+ dan is het helemaal een feest. Google haalt dan bij mij bijna 2MB aan data binnen (waarvan een javascript van bijna 1,2MB groot, wtf?). Met 50KB/s doe je daar dus gewoon 40 seconden over.
Qua performance zijn er nog dingen die beter kunnen bij ons, zoals bijvoorbeeld foto's op de frontpage standaard door een tool als kraken.io halen (de layout-plaatjes zijn al optimized).
[
Voor 3% gewijzigd door
Kees op 14-08-2014 15:53
]
"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan