2012-04-21 7 views
28

Qualcuno può dirmi la differenza nei seguenti script in termini di prestazioni e compressione del carico della CPU?mod_deflate vs mod_gzip

<ifModule mod_gzip.c> 
mod_gzip_on Yes 
mod_gzip_dechunk Yes 
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* 
mod_gzip_item_include mime ^application/x-javascript.* 
mod_gzip_item_exclude mime ^image/.* 
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 


<ifModule mod_deflate.c> 
<filesMatch "\.(js|css)$"> SetOutputFilter DEFLATE </filesMatch> 
</ifModule> 
+0

possibile duplicato di [Perché utilizzare deflate anziché gzip per i file di testo forniti da Apache?] (Http://stackoverflow.com/questions/388595/why-use-deflate-instead-of-gzip-for-text- files-served-by-apache) – KingCrunch

+0

possibile duplicato di [mod \ _deflate o mod \ _gzip, che dovrebbe essere usato?] (http://stackoverflow.com/questions/3173147/mod-deflate-or-mod-gzip- quale-dovrebbe-essere-usato) –

risposta

6

maggior parte degli algoritmi di compressione, quando applicata ad un file di testo semplice, in grado di ridurre le dimensioni del 70% o più, a seconda del contenuto del file. Quando si utilizzano algoritmi di compressione, la differenza tra i livelli di compressione standard e massimo è minima, soprattutto se si considera il tempo di CPU aggiuntivo necessario per elaborare questi passaggi di compressione aggiuntivi. Questo è abbastanza importante quando si comprime i contenuti Web in modo dinamico. La maggior parte delle tecniche di compressione dei contenuti software utilizza un livello di compressione di 6 (su 9 livelli) per risparmiare i cicli della CPU. La differenza nella dimensione del file tra il livello 6 e il livello 9 è solitamente così piccola da non valere il tempo extra richiesto.

Per i file identificati come testo /.* tipi MIME, è possibile applicare la compressione al file prima di posizionarlo sul filo. Questo riduce contemporaneamente il numero di byte trasferiti e migliora le prestazioni. I test hanno inoltre dimostrato che i file Microsoft Office e PostScipt possono essere codificati GZIP per il trasporto da parte dei moduli di compressione.

Alcuni tipi MIME importanti che non possono essere codificati GZIP sono file JavaScript esterni, file PDF e file immagine. Il problema con i file Javascript è principalmente dovuto a bug nel software del browser, poiché questi file sono in realtà file di testo e le prestazioni complessive potrebbero trarre vantaggio dalla compressione per il trasporto. PDF e file immagine sono già compressi e il tentativo di comprimerli li rende semplicemente più grandi e porta a potenziali problemi di rendering con i browser.

Prima di inviare un file compresso a un client, è fondamentale che il server accerti che il client che riceve i dati capisca correttamente e restituisca il formato compresso. I browser che capiscono contenuto compresso inviare una variazione dei seguenti intestazioni di richiesta del cliente:

Accept-encoding: gzip 

Accept-encoding: gzip, deflate 

attuali principali browser includono qualche variazione di questo messaggio ad ogni richiesta che inviano. Se il server vede l'intestazione e sceglie di fornire contenuto compresso, si deve rispondere con l'intestazione di risposta del server:

Per ulteriori informazioni, si veda questo articolo: http://www.linuxjournal.com/article/6802

+7

Questa risposta fornisce molte informazioni utili ma non risponde affatto alla domanda: qual è una scelta migliore e perché? –

+0

Questo lavoro di copia e incolla non tenta nemmeno di rispondere alla domanda effettiva. Non so perché è stato ricevuto positivamente. – thomasrutter

9

immagino che stai chiedendo sulle differenze tra questi due, e non sulla compressione in generale. In tal caso, consiglio di utilizzare mod_deflate che si basa sul progetto ancora attivo zlib. A proposito, vecchi articoli (6-7 anni) che confrontano i due, non sono più rilevanti.

2

L'abilitazione di mod_deflate e mod_gzip sostanzialmente ha la stessa funzione, entrambi comprimono i file Web prima che vengano inviati ai visitatori del tuo sito web.

Ci sono tuttavia differenze tra i due; mod_deflate a volte può avere una percentuale di compressione migliore minore di mod_gzip. Un altro motivo per cui devi scegliere mod_deflate è perché è meglio supportato come mod_gzip che rende più facile la configurazione perché è meglio documentato. Maggiori informazioni possono essere trovate here.

-3

IMHO Si dovrebbe evitare di usare mod_deflate per i file statici, invece di servire i file precompressi tramite mod_rewrite con la migliore compressione disponibile (7zip creato con gzip AFAIK). Apache non memorizza nella cache i file statici compressi con gzip.

Per i file dinamici: dipende dalla larghezza di banda disponibile - mod_deflate richiede molta potenza di elaborazione, ma utilizzabile se il server è in grado di sovraccaricare la rete.

+0

-1 La tua risposta è basata sull'opinione pubblica e non ha nulla di quantificabile a sostegno di tale opinione. Dovresti valutare i pro e i contro in base al tuo caso d'uso. – Precastic

+0

Penso che il mio commento indichi cose ovvie. Apache può servire circa 10 volte più file quando serve file precompressati statici. E puoi risparmiare circa il 10% di larghezza di banda mentre 7zip crea file zip più piccoli e gzip. Avrai anche un po 'di tempo di risposta migliore senza gzipping. E stai sprecando risorse per comprimere gli stessi file statici all'infinito. La mod_deflate complessiva è un modulo fine, ma usa solo per i file dinamici. – azazil

3

mod_gzip e mod_deflate sono due moduli alternativi per l'aggiunta della compressione gzip ad Apache. mod_deflate è il più moderno e lo consigliamo al giorno d'oggi e viene distribuito con Apache.

Non lasciatevi ingannare dai nomi pensando che usino schemi di compressione diversi. Entrambi usano gzip (che è un wrapper attorno al formato di compressione DEFLATE). Quest'ultimo è chiamato mod_deflate solo perché è stato preso il nome mod_gzip. Entrambi raggiungeranno fondamentalmente gli stessi livelli di compressione con impostazioni equivalenti.

Hanno una configurazione diversa, quindi è necessario trovare la documentazione per quella specifica che si sta utilizzando.

+0

Dopo alcuni anni e alcune chiacchiere, finalmente qualcuno pubblica una risposta effettiva all'OP. – MarsAndBack

Problemi correlati