2015-10-21 17 views
30

Tarayıcı tarafından süresiz olarak saklanması amaçlanan statik içerik yayınlarım. Chrome beklendiği gibi önbelleğe alıyor, ancak hala "indirme" zamanı harcıyor. Chrome 46.0.2490.71 kullanıyorum. Gördüğünüz gibiNeden Chrome önbellekten içerik "indirme" zaman harcar?

Chrome Network Tab

, içerik önbellekten sunulan, ancak yine de içerik indirmek için 68ms alır ediliyor. Bu, dosya önbelleğe alınmış olsa bile svg görüntülerinin her sayfa yüklenmesinde sayfasının yanıp sönmesine neden oluyor. İşte

Gizli modda Sayfa yüklemesi alakalı zaman çizelgesi bilgiler şunlardır: bu olayların her biri için

Chrome Timeline Tab

"Toplam Süre" ve "Olay Zaman" alanları sıfırdır. Bunu yerel olarak (ancak yine de önbellekten) sunulan dosya ile çoğaltmak, "Veri Al" olayını yalnızca bir kez görülür.

Birkaç ilginç noktalar not:

  • aynı kodlamasıyla, benim yerel makineden aynı dosyayı hizmet veren aynı indirme gecikmesi üretmez.
  • Gizli modda (uzantı yok) geçiş, indirme gecikmesini yarıya indirir, ancak ortadan kaldırmaz.
  • Sayfayı yenilemek daha hızlıdır, çünkü sunucudan yalnızca bir önbellekten yüklemek yerine 304 yanıtı almak için daha az zaman harcar.
  • Geliştirme araçlarının kapatılmasının gecikme üzerinde herhangi bir etkisi yoktur.
  • IE 11, Edge ve Firefox 41 herhangi bir gecikme göstermiyor.

Olası nedenler neler olabilir?

+0

Hangi uzantıları yüklediniz? Çoğu uzantı Incognito'da çalışmaz ... – malix

+0

Bunun nedeni muhtemelen yüklediğiniz bir uzantıdır. Çoğu kez böyle garip hatalara neden oluyorlar, çünkü kod/tarayıcıdaki birçok şeye erişebiliyorlar ... Buna hiç rastlamamıştım ve sitelerin performansını ölçmek için her zaman devtools kullanıyordum. Bunun bir krom hatası olduğunu düşünün. Sadece onları devre dışı bırakmayı deneyin ve onlara birer birer izin verin. – gillyb

+1

Dürüst olmak gerekirse, 67ms diskten 142kb yüklemek için gerçekçi değil bence. –

cevap

9

Bu, Chrome'da önbelleğe alma işlemleriyle ilgili olmalıdır. Chrome'un codebase'iyle kişisel deneyimim yok, ancak bunun teorisi hakkında biraz bilgi sahibiyim.

Başvuru için

, burada Ağ panelinden açık ve Ağ Kısma özelliği aktif olan Chrome'da gerçek yığın taşması soru benim yükleme bir ekran görüntüsü: (chromium disk cache Ben de daha meraklı burada Chrome'un önbellek uygulanması için bir referans bulundu) "Çevrimdışı". Bu listedeki her girişin önbellekten alındığına dikkat edin!

Imgur screencap

Ayrıca Chrome her dosyayı "indirirken" vakit olduğunu göreceksiniz. Bu neden? Eh, Chrome'un önbelleği bir veritabanıdır ve bu veritabanı da yer kazanmak için sıkıştırılmıştır. Bir belgeyi önbellekten aldığınızda, bu alımın fiyatı sıfır değildir. Chrome'un önbellek veritabanındaki öğeye bakması ve ardından Chrome'da çalışabilmesi için bu girişi belleğe genişletmesi gerekir. Network chrome-dev-tools panelinin zamanları nasıl gösterdiği ile ilgili kesin ayrıntıları bilmiyorum, ancak bu dosyayı diskten almanın, açılmanın ve ardından ayrıştırma ve sonuçla çalışmanın gördüğünüz şey olduğunu tahmin ediyorum. "İndirilen zaman" da yansıtıldı.

Diğer tarayıcıların neden bu kadar gecikme yapmadığı hakkında yorum yapamıyorum çünkü onlarla çok fazla deneyimim yok.Önbellekten (olası) bir şeyler almanın daha etkili bir yöntemini kullanabilirler veya önbelleği her zaman bellekte tutmaları (muhtemelen) ya da bütünlük kontrollerinden bazılarını atlıyor olabilirler. (olası) önbellek verileri üzerinde yapıyor

+1

Önbellekteki belleğe ve belleğe gidenleri önceliklendirmenin bir yolu var mı? – Skylervich

0

ben başlığı geçmektedir ("İçerik-Uzunluk: xxx") ne zaman% 100 daha hızlı gibi yükler!

İlgili konular