- Shipped
- 20 agosto 2026 alle ore 21:02 UTC
- Author
- Kamo
- Commit
- d268380
Due scoperte, e la seconda era mia. Il DOCUMENTO TOOK 1.259 ms BECAUSE DEL NONCE WRAPPER. Misurato contro il sito live: l'HTML ha risposto in ~900 ms mentre un statico asset ha risposto in 59 ms. La differenza è `zlib.brotliCompress` chiamato senza opzioni, che funziona a QUALITY 11 — l'impostazione più lenta — su ~490 KB di HTML, per richiesta, per ogni visitatore. q=11 565 ms 38,094 byte q= 6 13 ms 43,705 byte q= 5 ms 44,699 byte gzip 8 ms 75,360 byte Qualità 11 acquista 6,6 KB di qualità 5. Su un link mobile che vale la pena circa 30 ms di trasferimento, contro 560 ms di CPU del server: mezzo secondo perso, da tutti, in ogni pagina, per salvare un terzo di un secondo vale la pena di byte. Qualità 5 ancora batte gzip di 30 KB. TTFB locale attraverso il wrapper va ~900 ms -> ~21 ms. check-csp-nonce.mjs ora fallisce la costruzione se brotliCompress è chiamato senza un qualità esplicita. Un'affermazione di tempismo sarebbe sfacciata in CI; la forma della chiamata non lo è. Verificato reintroducendo il bug e osservandolo fallisce, quindi ripristinando. Il PRECONNECT è ora un DNS-PREFETCH. Lighthouse aveva ragione che era inutilizzato, e la ragione è che il lavoro rimuovendo richieste rimosso i suoi clienti. Lo sfondo dell'eroe passa attraverso / next/image, quindi è lo stesso-origine; il wordmark è inline; la bobina è tap-to-play; il SVG Favicon e' sparito. Tracciare ciò che realmente contatta quell'origine: niente fino al chat widget a +9.3 s, ed è `lazyOnload`. Chrome chiude una preconnessione idle presa dopo circa dieci secondi, quindi la connessione è stata aperta a parse time e abbandonato prima che qualcuno lo raccogliesse. La risoluzione DNS è la metà che aiuta ancora e la metà che sopravvive — in cache molto più lungo di una presa, quindi il widget salta una ricerca quando finalmente arriva, e nulla è tenuto aperto nel frattempo. Stessa forma del suggerimento di analisi accanto a esso, che è lazyOnload per lo stesso motivo. Sull'albero di dipendenza: sono due livelli, documento -> foglio di stile, che è già minimale. La catena era lunga perché il suo primo collegamento era lento, non perché era profondo — quindi la correzione sopra è la soluzione per entrambi. Inlineare il foglio di stile a rimuovere il secondo link rimane respinto sulla misura già registrata in next.config.ts.