Qual è la dimensione minima consigliata per gli oggetti per i vantaggi delle prestazioni di gzip?


31

Sto lavorando per migliorare i tempi di visualizzazione della velocità della pagina e uno dei metodi è decomprimere il contenuto dal server web.

Google consiglia :

Si noti che il gzipping è utile solo per risorse più grandi. A causa del sovraccarico e della latenza di compressione e decompressione, è necessario gzip solo i file al di sopra di una determinata soglia di dimensioni; si consiglia un intervallo minimo tra 150 e 1000 byte. I file compressi con gzip inferiori a 150 byte possono effettivamente ingrandirli.

Forniamo i nostri contenuti tramite Akamai , usando la loro rete per proxy e CDN. Cosa mi hanno detto:

In seguito alla domanda relativa alla dimensione minima, Akamai comprime l'oggetto richiesto quando lo invia all'utente finale: La dimensione minima è di 860 byte.

La mia risposta:

Qual è il motivo (i) per cui la dimensione minima di Akamai è 860 byte? E perché, ad esempio, non è questo il caso dei file che Akamai serve per Facebook? ( vedi sotto ) Google consiglia di decomprimere in modo più aggressivo. E questo sembra appropriato sul nostro sito dove gli hit più frequenti, di gran lunga, sono chiamate AJAX che sono <860 byte.Schermata delle intestazioni di Facebook contestando la dichiarazione di Akamai

La risposta di Akamai:

I motivi per cui 860 byte sono la dimensione minima per la compressione è duplice: (1) Il sovraccarico di comprimere un oggetto al di sotto di 860 byte supera il guadagno delle prestazioni. (2) Gli oggetti con meno di 860 byte possono comunque essere trasmessi tramite un singolo pacchetto, quindi non esiste un motivo valido per comprimerli.

Quindi sono qui per un controllo dei fatti. Il limite di 860 byte dovuto alla dimensione del pacchetto è la fine di questo ragionamento? Perché i siti ad alto traffico spingono questo fino al limite di 150 byte ... solo per risparmiare sui costi della larghezza di banda (dal momento che i CDN basano i loro addebiti sulla larghezza di banda scaricata dall'origine), o c'è un miglioramento delle prestazioni nel farlo?


Aggiornamento del 7/07/12: ho chiesto a Steve Souders se ci fosse un aumento delle prestazioni nelle risposte di gzip che sono già più piccole di un pacchetto e qual è la dimensione minima dell'oggetto consigliata per i vantaggi delle prestazioni di gzip, e questa è la sua risposta:

Grazie per la tua email. La dimensione è compresa tra 1-5K. Apache ha un valore predefinito ma dimentico di cosa si tratta - sarebbe una buona guida.

Facciamo la nostra compressione su un'appliance F5, quindi la abbasseremo a ~ 350 byte, poiché tra questo e 1K vi è una discreta quantità di chiamate AJAX. Le chiamate AJAX che sono meno di 350 byte sul nostro sito Web sono tutte in calo di circa 70 byte ... meno dei consigli di Google ... quindi sembra davvero ricadere su: conoscere il sito Web e regolare in base al codice .

Tornerò a questo post dopo che l'aggiornamento F5 verrà eseguito in produzione per un po '. Penso che ci saranno pochi vantaggi in termini di prestazioni, ma abbasseremo un po 'i nostri costi di Akamai poiché servono meno.


@Steve, per quanto riguarda la modifica di aprile ho aggiunto welp per chiarire la sensazione, poiché l'esperto nella risposta di questo campo non ha risposto a nessuna delle due domande. Mi ha fatto molto piacere ricevere una risposta dal signor Sounders, ma neanche lui conosceva una risposta definitiva.
utt73,

Per quanto riguarda "torna a questo post dopo che l'aggiornamento F5 viene eseguito in produzione per un po ' ", anche se non lavoro più con questa particolare applicazione Web, siamo riusciti nel nostro obiettivo di ottenere sia il caricamento medio della pagina () che il tempo per Interattivo (TTI) inferiore a 2 secondi, e questa riduzione dello sforzo del payload è stata una piccola parte di questo. La riduzione del numero di chiamate sul traffico http, l'espansione della memorizzazione nella cache del browser, l'ottimizzazione del codice e altre best practice relative alle prestazioni Web hanno contribuito.
utt73,

Risposte:


3

Stai parlando dei vantaggi per i costi della larghezza di banda, ma anche confrontando le prestazioni del caricamento della pagina in un browser. Sono due cose diverse.

Ogni volta che gzip una richiesta, qualcosa deve effettivamente fare la compressione (nel tuo caso, la F5) e il client (o tecnicamente proxy) deve gestire la decompressione. Ciò può aggiungere più latenza alla tua richiesta, a seconda della capacità dell'hardware su entrambi i lati.

La "dimensione minima per gzip" si basa sul tempo necessario per comprimere / decomprimere quel piccolo dato che non è utile dal punto di vista dell'esperienza del browser web. Se stai semplicemente parlando di risparmi sulla larghezza di banda, vai avanti e imposta il minimo come desideri, ma facendo ciò sapendo che potresti non offrire agli utenti finali alcun miglioramento delle prestazioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.