Perché la minificazione HTML / Javascript è vantaggiosa

13

Perché la minificazione HTML / Javascript è vantaggiosa quando il protocollo HTTP supporta già la compressione dei dati gzip?

Mi rendo conto che la minificazione Javascript / HTML ha il potenziale per ridurre significativamente le dimensioni dei file Javascript / HTML rimuovendo gli spazi bianchi non necessari, e forse rinominando le variabili con poche lettere ciascuna, ma l'algoritmo LZW non fa in particolare bene quando ci sono molti caratteri ripetuti (ad esempio un sacco di spazi bianchi?)

Mi rendo conto che alcuni strumenti di minimizzazione di Javascript non si limitano a ridurre le dimensioni. Il compilatore di chiusura di Google, ad esempio, cerca anche di migliorare le prestazioni del codice integrando le funzioni e eseguendo altre analisi. Ma lo scopo primario di Javascript minification è di solito ridurre le dimensioni del file.

Mi rendo anche conto che ci sono altri motivi per cui potresti voler minare oltre a performace, come l'offuscamento del codice. Ma ancora una volta, questo motivo non viene solitamente enfatizzato tanto quanto il guadagno di prestazioni e la riduzione della dimensione del file. Ad esempio, Closure Compiler non è pubblicizzato come strumento di offuscamento, ma come riduttore di dimensioni del codice e potenziatore della velocità di download.

Quindi, quanto rendimento guadagni davvero dalla minzione Javascript / HTML quando hai già significativamente ridotto la dimensione del file con la compressione gzip?

    
posta Channel72 29.06.2012 - 13:20
fonte

4 risposte

10

Perché la compressione gzip ha il proprio overhead (CPU). Minification è la prima compressione "low hanging" che può essere applicata senza il colpo della CPU.

Tuttavia possono sembrare insignificanti, i numeri presto hanno senso quando sono coinvolte le dimensioni.

Inoltre, con la minificazione hai less in gzip.

    
risposta data 29.06.2012 - 13:22
fonte
5

Minification + gzip generalmente dà risultati migliori, perché gzip è un algoritmo generale, non specificamente adattato a un input o a un altro, mentre il minificator è a conoscenza del suo contenuto e può svolgere attività che l'algoritmo di compressione generale non può fare. Può anche costare la perdita (pensa: eliminare completamente i commenti e gli spazi bianchi - è una compressione al 100% per questi dati, come puoi battere?), Mentre la compressione generale non può.

    
risposta data 29.06.2012 - 14:10
fonte
2

Potresti non ottenere troppi benefici in termini di prestazioni, ma ridurrai comunque l'utilizzo della larghezza di banda. Se riesci a radere alcuni kb dai file js (e css) attraverso la minification (e l'uso di sprite css per ridurre il numero di richieste) e stai scontando migliaia di utenti al giorno, dopo un mese ridurrai in modo significativo la larghezza di banda.

    
risposta data 29.06.2012 - 15:52
fonte
1

La singola cosa più costosa che fai in un'applicazione web è mandare le cose nel web. L'invio di meno cose nel cavo è quasi sempre una vincita netta se si paga in cicli di CPU.

Inoltre, non ho nulla di scientifico a supporto di ciò, ma mi aspetto che gli strumenti di minification possano probabilmente comprimere javascript meglio di gzip se per nessun altro motivo gli strumenti di minification sono specifici del dominio e possono essere ottimizzati per comprimerlo meglio javascript considerando che gzip è uno strumento generico e comprometterà la parte centrale.

    
risposta data 29.06.2012 - 16:06
fonte

Leggi altre domande sui tag