Chrome'da Sekme Silme İşlemi - Bellek Tasarrufu Denemesi

Addy Osmani
Addy Osmani

Chrome'un bellek alanını azaltmak ekibin bu yılki en önemli önceliklerinden biridir. V8'in çöp toplama sürecindeki iyileştirmeler sayesinde Gmail'in bellek kullanımında şimdiye kadar% 45'e varan bir düşüş yaşadık, ancak aslında daha yeni başlıyoruz. Bellek kullanımıyla ilgili bir sonraki denemelerimizden biri de sekme sahipleri (benim gibi) için. Bu işleme Sekme Silme adı verilir.

Tüm açık sekmeler sekme kullanılmaz. Bellek yetersizse Chrome ilgi çekici olmayan arka plan sekmelerini silebilir.

Sekme silme özelliği Chrome 46 ve sonraki sürümlerde deneme olarak kullanılabilir.

Arka plan

Çoğu kullanıcı aynı anda yalnızca bir sekme kullansa da, açtığınız her sekme için oluşturucu işlemimiz genellikle sekme başına yaklaşık 50 MB sürer. 10 sekme açıksa yalnızca arka plan sekmenizin durumunu korumak için en az 450 MB bellek harcanır. Bu, zamanla biraz kontrolsüz bir hal alabilir.

Sekme başına gereken bellek

Hedeflerimizden biri, gerçekte kullanmadığınız sekmelerde kullanılan belleği azaltmaktır. Chrome Görev Yöneticisi'nde sistem belleğimi hangi sekmelerin tükettiğine bakarsam, arka plandaki diğer sekmeler kullanılmıyorken aşağıdaki sitelerden yalnızca birini "kullanıyorum".

Bellek gerektiren görev yöneticisi

Sekme silme işlemi, bellek kullanımımızı azaltmaya yardımcı olabilir.

Kullanılmayan sekmeleri silme

Sekme silme, sistem belleğinin oldukça azaldığı tespit edildiğinde Chrome'un, çok ilgilenmediğiniz sekmeleri otomatik olarak silmesine olanak tanır. Atma derken neyi kastediyoruz? Silinmiş bir sekme hiçbir yere gitmiyor. Bu düğme kaldırılır ancak Chrome sekme şeridinde görünmeye devam eder. Silinmiş bir sekmeye geri giderseniz bu sekme tıklandığında yeniden yüklenir. Form içeriği, kaydırma konumu ve benzeri öğeler, ileri/geri sekmelerde gezinirken olduğu gibi kaydedilir ve geri yüklenir.

Ayrıca, tüm sekme kaynaklarının yerel olarak önbelleğe alınmasını sağlayan yeni bir özelliğimiz daha var. Bu özellik, çevrimdışı olduğunuzda sekmelerin silinmesiyle sorunsuz şekilde çalışıyor. Sekme yeniden etkinleştirildiğinde, daha önce ağ üzerinden yüklenen önbelleğe alınmış sürümü yeniden yükleme seçeneği sunarız. Sayfaları önbellekten yeniden yüklemeyi etkinleştirmek için chrome://flags/#show-saved-copy altında başka bir deneme deneyebilirsiniz.

Sekme silme özelliğini hemen chrome://flags/#enable-tab-discarding üzerinden etkinleştirip Chrome'u yeniden başlatarak deneyebilirsiniz. Aynı Chrome chrome://flags sayfasından etkinleştirilip devre dışı bırakılma durumunu kontrol edebilirsiniz.

Sekme ekran görüntüsünün silinmesini etkinleştir.
Yeniden başlat düğmesi ekran görüntüsü.

chrome://discards adlı yeni bir sayfa, şu anda açık olan sekmeleri listelemenize olanak tanır. Biz de bu sekmelerin sizin için ne kadar ilginç (düşündüğümüz) olduğu konusunda en az olana doğru bazı bilgiler paylaşmaya çalışıyoruz.

Silinmiş sekmeler sayfasının ekran görüntüsü.

Bu özelliği test etmek için sisteminiz düşük bellek moduna geçene kadar normal göz atma davranışınızı gerçekleştirebilir veya "Sekmeyi şimdi sil"i tıklayarak hakkında:discards'tan bir sekme silme işlemini tetikleyebilirsiniz. Bu, listedeki son sekmeyi siler. Ayrıca, karşılık gelen "Sil" düğmesini tıklayarak belirli bir sekmeyi listeden silebilirsiniz. Silinen bir sekme, [Silindi] ön ekiyle birlikte gösterilir.

Silinmiş sekme örneği ekran görüntüsü.

Sekme silindiğinde sekmeler şu sırayla silinir:

  • Yeni sekme sayfası, yer işaretleri vb. dahili sayfalar
  • Uzun süre önce seçilen sekmeler
  • Son seçilen sekmeler
  • Pencerede çalışan uygulamalar
  • Sabit sekmeler
  • Seçili sekme

Windows ve Mac OS için Chrome Canary'de sekme silme denemesini etkinleştirdik. Yakında Linux'ta da kullanıma sunulacaktır.

Sabitlenmiş sekmeler, bir sekmenin silinip silinmeyeceğine bakarken de dikkate alınır

İlham kaynağı: Merhaba, harika askıya alma

Sekme silme işlemi size tanıdık geliyorsa bunun nedeni, bu fikrin biraz daha basit bir versiyonunu sunan The Great Asker gibi kullanışlı Chrome uzantılarıyla karşılaşmış olmanızdır. Great Asker, belirli bir süre işlem yapılmadığında sekmeleri askıya alarak Chrome'un belleğini ve GPU ayak izini azaltmayı hedefler.

Askıya alma ekran görüntüsü.

Sekme silmeye benzer şekilde, sekmelerle tekrar etkileşimde bulunmanız gerektiğinde sekmelerin askıya alınma durumu kaldırılabilir. Great Asker, her sekmenin başlığını ve site simgesini korur, askıya alınmış sekmeleri soluk renkte gösterir ve böylece dilediğiniz zaman geri dönmenizi kolaylaştırır.

Askıya alınan sekmeler site simgesinin ekran görüntüsü.

Arka planda aktif olarak kullanmadığım sekmeler askıya alındı ve bellekten tasarruf edildi. Hâlâ aktif olarak kullandığım sekmeler (GitHub ve YouTube) normal şekilde çalışmaya devam ediyor.

Sekme silme özelliğini geliştirirken Great Asker uzantısının yazarıyla gerçekten harika bir sohbet gerçekleştirdik ve bu sorunu bir uzantının yapabileceğinden daha etkili yöntemlerle (kullanıcı işlemlerinizin durumunu kaybetmek gibi) yerel olarak ele aldığımızı görmekten çok memnun oldular.

Gelecekte yapılacak iyileştirmeler: Sekme serileştirici

Sekme serileştirici ileride yapılacak bir çalışmadır. Sekme silme konusundaki mevcut yaklaşımımızda önemli iyileştirmeler sağlayabilir. Bir Chrome sekmesinin içeriğini alır ve *geçerli* durumunu ikili blob halinde seriler. Bu ikili blob daha sonra bir sekmeye seri durumdan çıkarılabilir.

Serileştirici; Chrome, Blink ve V8'in bir sekmeyi doğru şekilde korumak için ihtiyaç duyduğu hemen hemen her şeyi serileştirirdi (bu sorunu çözen Chrome uzantılarının geçmişte kolayca başaramadığı bir şeydi). Serileştirme; olağan şüphelileri içerir: DOM (çok sayıda WebGL ve Tuval dahil), CSS ve V8 JavaScript sanal makinesinin durumu.

Serileştirici kavramının ekran görüntüsü

Android veya ChromeOS kullanıyorsanız (bu yayında bahsedilen sekme silme denemesine benzer şekilde), bellek kullanımının düşük olduğundan emin olmak için arka plan sekmelerini etkin şekilde devre dışı bıraktığımızı biliyor olabilirsiniz. Bunu ele alış şeklimizdeki sorun, sekmenizin durumunun *tümünü* kaybetmesiydi.

Sekmeye tekrar ilgi gösterdiğinizde yeniden yüklememiz gerekirdi ve sekmeyle olan tüm etkileşiminiz kaybolur. Sekme serileştirici, bu soruna sizi ağa geri dönmeye gerek kalmadan hemen hemen tam olarak olduğunuz duruma geri döndürecek şekilde yaklaşır. Bu çalışmayla ilgili daha fazla bilgiyi ilerleyen zamanlarda paylaşmayı umuyoruz.

Sekme silme özelliğini deneyin ve görüşlerinizi bizimle paylaşın

Bu özelliğin sizin için yararlı olup olmadığını ve nasıl geliştirilebileceğini bilmek isteriz. Deneyin, ufak değişiklikler yapın (özellikle de sekme açıyorsanız!) ve düşüncelerinizi bizimle yorumlarda paylaşın. :) Ayrıca, crbug.com adresinde karşılaştığınız hatalar için destek kaydı oluşturursanız çok memnun oluruz.