Gammel hund er jeg dog ikke :-)
Med det sagt, jeg ved ikke hvordan folk måler deres hastighed - men nogle ting skal vi have på plads:
- En standard Prestashop i sig selv, er relativt 'let' for en server, for at rendere HTML's der bliver sendt tilbage til brugeren - snakker vi udelukkende download af siden, men ingen eksterne ressourcer kan man måske i meget få tilfælde opnå 30ms.. Hvorfor kun få tilfælde?
Vi skal tage højde for nogle ting:
- Prestashop i sig selv er PHP, og php er ikke ufattelig hurtigt, selv med en godt optimeret server, php7, og en CPU på 3.7 ghz (ret high-end, selvfølgelig kan man få højere), vil du kunne opnå 45-60ms (jeg tager DNS lookup, TCP connect, TTFB osv som en del af det:
time_namelookup: 0.012
time_connect: 0.013
time_appconnect: 0.000
time_pretransfer: 0.013
time_redirect: 0.000
time_starttransfer: 0.046
----------
time_total: 0.052
Eksemplet ovenfor er gjort på en server placeret i et datacenter, til en server 0.4 ms fra den, så vi udelukke ens RTT i form af at sende data frem og tilbage - stadig, svært at opnå 30ms, men det her er baseret på en standard Prestashop løsning, og målingen sker kun på et downloade én del, nemlig det markup der starter download af de andre.
Vi snakker om et sprog der er dybt afhænging af mængden af gigahertz man har på én core, da PHP er single threaded - så ville du bruge en 4.4ghz CPU, ville du selvfølgelig kunne opleve bedre tider, men desværre ikke meget.
Måler vi realistisk, skal vi beregne at folk har en RTT til serveren på 10-50ms fordi det er et meget realistisk bud på hvad end-users vil se, selv indenfor Danmark hvis de ligger hos danske udbydere.
Har du en round trip på 25ms, vil du aldrig kunne nå det indenfor 30ms, ingengang indenfor 100, lad os tage et eksempel, introducere vi en round trip time på 28ms, vil siden der før tog 0.052 sekunder at lave et curl request på, pludselig tage 0.149 sekunder:
time_namelookup: 0.001
time_connect: 0.029
time_appconnect: 0.000
time_pretransfer: 0.029
time_redirect: 0.000
time_starttransfer: 0.091
----------
time_total: 0.149
Siden blev altså 3 gange langsommere ved at introducere en latency på 28 millisekunder - er det meget? Sammenligner du ja - men kigger du generelt på internettet, nej - 150ms for DNS lookup, TCP connect, tiden for PHP at process dit request og downloade alt indholdet - så er det egentligt fint nok.
Vi skal også huske at de kun er de første få requests der vil tage lang tid, fordi du har ting som dit TCP handshake og TLS handshake som skal foregå, DNS queries der måske sker, og en del rendering server side hvis det er dynamisk indhold - så subsequent forespørgsler vil være hurtigere (forhåbentlig).
Kan du opnå 30ms på Prestashop teoretisk set er det fint, men realistisk set vil ingen kunder opleve det. Om det er en shop eller en normal side gør ingen forskel - normale sider kan kræve samme eller flere ressourcer som en shop kan, og loade samme eller flere antal billeder/js/css som en shop kan.
Og lad os være realistiske, hvad der er vigtigst er at brugeren har en god bruger oplevelse, og det kan du endda skabe ved din side måske ikke er lige så hurtig som din konkurrent, men at den føles hurtigere. Perceived performance er langt vigtigere end den faktiske performance.
Selvfølgelig skal man som ejer af en side eller udvikler gøre lidt for at være en god person og bruge nogle (ikke alle) best practices, men i sidste ende vi skal tænke mere på brugeren end noget andet.