HTML / Javascript küçültmesi neden yararlıdır?


14

HTTP protokolü zaten gzip veri sıkıştırmasını desteklediğinde HTML / Javascript minimizasyonu neden yararlıdır?

Ben JavaScript / HTML küçültme Javascript boyutunu küçültmek anlamlı potansiyeline sahip olduğunu fark / HTML her birkaç harf değişkenleri yeniden adlandırma belki gereksiz boşluk kaldırma ve tarafından dosyaları, ama yapacak LZW algoritması değil özellikle birçok tekrarlanan varken iyi karakter (örn. çok fazla boşluk?)

Bazı Javascript küçültme araçlarının boyutu küçültmekten daha fazlasını yaptığını anlıyorum. Örneğin, Google'ın kapatma derleyicisi, işlevleri satır içine alarak ve başka analizler yaparak kod performansını artırmaya çalışır. Ancak Javascript minimizasyonunun temel amacı genellikle dosya boyutunu azaltmaktır.

Ayrıca, kod gizleme gibi performanstan başka küçültmek isteyebileceğiniz başka nedenler de var. Ancak yine de, bu neden genellikle performans kazancı ve dosya boyutu küçültme kadar vurgulanmaz. Örneğin, Closure Compiler bir gizleme aracı olarak değil, bir kod boyutu küçültücü ve indirme hızı geliştirici olarak tanıtılır.

Peki, zaten gzip sıkıştırmasıyla dosya boyutunu önemli ölçüde azalttığınızda Javascript / HTML minimizasyonundan ne kadar performans elde ediyorsunuz ?

Yanıtlar:


11

Çünkü gzip sıkıştırmasının kendi ek yükü (CPU) vardır. Küçültme, CPU'ya çarpmadan uygulanabilen ilk "düşük asılı" sıkıştırmadır.

Ancak bunlar önemsiz görünebilir, ancak rakamlar ölçek dahil edildiğinde kısa sürede anlamlı olacaktır.

Ayrıca, minyatür ile gzip yapmak için daha az şey var .


3
Modern web sunucuları aslında her istek için javascript dosyalarını sıkıştırır mı? Bir sunucunun değişmesi olası olmadığı için statik gzip edilmiş içeriği önbelleğe alacak gibi görünmektedir.
aaberg

@aaberg Yine de, bu sunucuda daha fazla önbelleğe alınmış verilerdir. (önbellekleme iyi değil)
chills42

@ chilis42: Sunucular sorun varsa, önceden sıkıştırılmış dosyayı dosya sisteminin kendisinden sunabilir.
herby

Ölçek için +1. Eğer 10 kullanıcı ve günde 100 isabet varsa onun saygısız. Eğer bir saat 100k isabet sunucu gerekiyorsa önemli bir tasarruf.
SoylentGray

2
Bir şey bana tam ölçekli JavaScript derleyicisini çalıştırmanın ve birkaç en iyi duruma getirmenin dahili sunumda çalıştığını söylüyor, bunların çoğu Java'da genellikle düşük bir CPU yükü değil .
Oleg V.Volkov

5

Minification + gzip genellikle daha iyi sonuçlar verir, çünkü gzip, bir girdiye veya diğerine özel olarak uyarlanmamış genel bir algoritmadır, minificator içeriğinin farkındadır ve genel sıkıştırma algoritmasının yapamadığı işleri yapabilir. Aynı zamanda kayıplı olabilir (düşün: yorumları ve boşlukları tamamen ortadan kaldırır - bu veri için% 100 sıkıştırma, bunu nasıl yenebilirsiniz?), Ancak genel sıkıştırma yapamaz.


2

Çok fazla performans avantajı elde edemeyebilirsiniz, ancak yine de bant genişliği kullanımınızı azaltabilirsiniz. Js (ve css) dosyalarınızı küçültme (ve istek sayısını azaltmak için css sprite kullanımı) aracılığıyla birkaç kb'yi tıraş edebilirseniz ve günde 1000 kullanıcıya hizmet veriyorsanız, bir ay sonra bant genişliğinizi önemli ölçüde azaltırsınız.


1
+1: Küçültme, toplam tasarruf ile ilgilidir. Bireysel bir isteğin daha hızlı olmasına yardımcı olabilir, ancak bunun amacı zaman içinde bant genişliği kullanımını azaltmaktır.
Joel Etherton

1

Bir web uygulamasında yaptığınız en pahalı şey, işleri telden aşağı göndermektir. CPU döngülerinde ödeme yapıyorsanız, kablodan daha az şey göndermek neredeyse her zaman net bir kazançtır.

Buna ek olarak, bunu destekleyecek bilimsel bir şeyim yok, ancak minimizasyon araçlarından başka bir nedenden ötürü etki alanına özgü değilse ve javascript'i daha iyi sıkıştırmak için ayarlanabiliyorsa, küçültme araçlarının javascript'i gzip'ten daha iyi sıkıştırabileceğini umuyorum. genel bir araçtır ve ortaya uzlaşacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.