Spring til indhold

Et sikkerhedsnet, der ikke længere koster en halv time

Har skåret sitets browserdrevne kvalitetsgate fra 1.636 sekunder til 615 ved at afvikle dens tjek med de længste først gennem en worker‑pulje begrænset til fire spor, efter at have målt, at alfabetisk rækkefølge kostede 320 sekunder mod 224.

  • Speed limit, highway, lane
    Foto: Sponchia / Pixabay
  • Tartan track, career, runway
    Foto: Hans / Pixabay

615 sekunder for den visuelle gate, ned fra 1.636

Situation. Elleve af sitets tjek styrer en headless browser: layout ved alle de vinduesformer, designet tegner, typeskala, udvidelse af oversat tekst, kontrast, tilgængelighedsregler, tvungne farver, maskotstørrelse, bevægelse, print i seks papirkombinationer, konsolfejl og visuel regression. Kørt ét ad gangen tog de 1.636 sekunder, lidt over syvogtyve minutter. En gate, der tager syvogtyve minutter, er en gate, der bliver sprunget over, og et tjek, der springes over, kan ikke skelnes fra et, der består.

Opgave. Den samlede køretid skulle så langt ned, at det at køre dem blev det normale og ikke en beslutning, uden at nogen af dem blev svækket.

Handling. Arbejdet begyndte med måling. Hvert tjek blev tidsmålt enkeltvis på en maskine med tolv kerner: layout på 405 sekunder, typografi på 301, oversættelse på 282, kontrast på 189, tilgængelighed på 178 og så videre ned til sytten. To fund formede svaret. At køre dem alle på én gang var langsommere end at køre fire ad gangen — 265 sekunder mod 224 — for hvert tjek er selv en browser, der arbejder parallelt, og det koster mere at overbelaste maskinen, end samtidigheden vinder. Og at sortere efter længste behandlingstid først slog alfabetisk rækkefølge med næsten en tredjedel, 224 sekunder mod 320, og det er det klassiske resultat fra planlægningsteorien, som viser sig her, fordi tjekkenes omkostning varierer med en faktor tyve. Derfor er afvikleren en begrænset pulje af workers, dimensioneret ud fra antallet af kerner med mindst to og højst fire, og den fodres med det længste først. Samtidig blev tjekkene udvidet i stedet for indsnævret: de deler nu én viewport‑tabel med toogtyve vinduesformer, udledt af alle de media queries, stylesheetet reelt indeholder, og det alene tog layouttjekket fra 95 sekunder til 405.

Resultat. Gaten gik fra 1.636 sekunder til 615, mens tjekkene blev bredere og ikke tyndere — den serielle omkostning steg, og den samlede tid faldt. Målingen er den del, der er værd at beholde: to valg, der lød fornuftige, at køre alt på én gang og at køre tingene i den rækkefølge, de blev skrevet i, var hver især målbart dårligere end alternativet.

Ét stykke af en længere fortegnelse — og det hele ligger her på sitet.

Hver post er skrevet på samme måde: situationen, opgaven, hvad vi gjorde, og hvad der ændrede sig.

Se hele fortegnelsen