GZipped Resimleri - Buna Değer Mi?


36

Çoğu resim formatı zaten sıkıştırılmış. Ama aslında, eğer bir görüntü çekip sıkıştırırsam [gzipping] ve sonra sıkıştırılmış olanı sıkıştırılmamış olanla karşılaştırırsam, bu kadar dramatik bir fark olmasa da boyutta bir fark vardır.

Soru şudur: görüntüleri gzipping mi? istemcinin tarayıcısına atılan içerik boyutu daha küçük olacak, ancak paketten çıkarırken bazı istemci ek yükleri olacaktır.

Tavsiye lütfen.


2
Eğer sunucunuzdaki tıkanıklık ağ üzerinde CPU'dan daha yakınsa, elbette. Aksi takdirde, daha düşük asılı meyveler olabilir.
Konerak

Yanıtlar:


29

Google, taşıma kapasitesini en aza indirgemede gzip ve resim / ikili dosyalara gönderme yapar

Resim veya diğer ikili dosyalar için gzip kullanmayın.

Web tarafından desteklenen görüntü dosyası biçimlerinin yanı sıra videolar, PDF'ler ve diğer ikili biçimler zaten sıkıştırılmış; gzip'i üzerlerinde kullanmak herhangi bir ek fayda sağlamaz ve onları daha da büyütebilir. Görüntüleri sıkıştırmak için bkz . Görüntüleri optimize etme .


favicon.ico, bahsetmeye değer bir istisnadır. ICO görüntüleri sıkıştırılmaz, bu nedenle gzip bunlar üzerinde çok iyi performans gösterir.
Bir kedi,

7

Bu, neyin daha önemli olduğuna, müşteri dekompresyon kaynaklarına (zaman, işlem gücü, bellek vb.) Veya ağ bant genişliğine bağlı olacaktır.

Örnek 1) İstemci sistemleriniz sunucuya çok yakın (yerel bir ağda söylüyorlar) veya yüksek hızlı bağlantılara sahipler, ancak çok düşük güçlüyüz (sınırlı kaynaklara sahip gömülü sistemler). Herhangi bir müşteri tarafının ek yükü (gzipleme) istemez ve transfer ek yükünü kolayca karşılayamazsınız (birkaç bayt, yerel bir ağdaki gerçek dünyada bir fark yaratmaz).

Örnek 2) Müşterilerinizin hepsi çok yüksek güçlü sistemlerdir (örneğin, ortalama ofis iş istasyonlarının üstünde), ancak bunlardan binlerce kişi vardır ve sunucunuz yalnızca sınırlı bir bant genişliği tahsisine sahiptir. Bu senaryoda, son kullanıcılar ek yükü kolayca karşılayabilir ve her bayt sunucu için önemlidir. uzaklaş!

Gerçek Dünya) Resimlerinizi gözden geçirmekten muhtemelen daha iyi DEĞİLSİNİZ. Modern sistemler işlemeyi iyi bir şekilde karşılayabilir, ancak gerçek dünya beklentileriniz varsa biri cep telefonu veya düşük güçte bir sistem kullanacaktır. Ek olarak, alıcının gzip yapabilmesi için bir kısıtlama getiriyorsunuz. Çoğu zaman sorun olmamalı, ama neden birini kısıtlasın? Boyutta tasarruf önemsiz olacak ve işlem yükü hiçbir sistem için olmayacak. Boyut tasarrufları arttıkça, daha fazla işlemci yükü beklemelisiniz, bu nedenle herhangi bir normal bağlantı türü üzerinden transferde her zaman tasarruf ettiğinizde, gzip'i kullanılabilir bir şey haline getirmek için harcanan zamanla yeniden yaratılma şansı olur.

En iyi bahis IMO, daha yüksek optomizasyon ve alternatif görüntü formatlarına bakmaktır. Tüm JPEG'ler eşit oluşturulmaz. Örnek: Bir görüntüyü photoshop'ta bir jpeg olarak kaydedin, ardından "web ve aygıtlar için kaydet" i jpeg olarak kaydedin, dosya boyutu aynı kalite ayarlarıyla büyük ölçüde farklı olmalıdır. Ek olarak, "kaydet for" seçeneği, ince ayar kalitesi ve dosya boyutu için birçok seçenek sunar. GIF'ler gibi daha "tarihli" biçimlerden de korkmayın. Resminiz GIF formatının sınırları dahilinde güzel görüntüleniyorsa, hala çok daha küçük olması ve şeffaflık gibi ekstra avantajlar sunması muhtemeldir ...


Detaylı cevabınız için teşekkürler. Bahsettiğim senaryo, bir e-ticaret web sitesinde kısmen optimize edilmiş milyonlarca mevcut görüntüden oluşan bir senaryodur. Bu nedenle, en yüksek önceliğin müşteri tarafında hızlı renderleme olduğu ve müşterilerin makinelerinin ortalama ve daha az güçlü olduğu açıktır . Farklı bir biçimde kaydetme bir seçenek değildir [büyük yatırım]. En iyi çözüm, bir klasördeki tüm jpeg dosyalarını en iyi duruma getirebilecek bir araca sahip olmak için [mevcut birçok görüntü] gibi bir durumda olacaktır. Böyle bir araca aşina mısın?

JPEG'leri optimize eden jpegtran adlı ücretsiz bir komut satırı yardımcı programı var, bir klasördeki tüm görüntüleri toplu olarak işleyebiliyor, böylece araştırmaya değer olabilir.
Tim Çeşmesi


-1

Trimage (bağlıdır o görüntüleri optimize etmek için alır gibi iyi olarak hakkındadır OptiPNG, pngcrushve jpegoptimben hatırlarsanız). Genellikle pngcrushdoğrudan dağıtımın bir parçası olarak kullanırım , örneğin

$ for i in *.png; do pngcrush -rem allb -brute -reduce $i crushed/$i; done;
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.