Bilgisayar

Chrome neden bu kadar RAM kullanıyor?

Chrome'un yüksek bellek tüketiminin arkasında, web sitelerini birbirinden ayıran çok süreçli mimari de bulunuyor. Tarayıcının Görev Yöneticisi ve Bellek Tasarrufu ayarları, kaynak tüketen sekmeleri belirlemeyi ve kullanılmayan sayfaların yükünü azaltmayı sağlıyor.

Chrome neden bu kadar RAM kullanıyor?

Bilgisayarın görev yöneticisini açıp çok sayıda Chrome işlemiyle karşılaşmak, tarayıcının kontrolden çıktığını düşündürebilir. Ancak bu görünüm, Chrome'un çalışma biçiminin bir parçası. Tarayıcı, arayüzünü ve web içeriklerini farklı süreçlere dağıtarak bir sayfadaki sorunun diğer sayfaları etkilemesini sınırlamaya çalışıyor. Dolayısıyla yüksek RAM kullanımı değerlendirilirken açık sekmelerin içeriğine, uzantılara ve bilgisayarın verdiği tepkilere birlikte bakmak gerekiyor.

Bu tasarımın bellek açısından bir maliyeti var. Buna karşılık, toplam kullanımın yüksek olması tek başına bellek sızıntısı veya yazılım hatası anlamına gelmiyor. Bir sekmenin giderek yavaşlaması, belleğinin sürekli büyümesi ya da bilgisayarın diğer işlere yanıt vermekte zorlanması, araştırılması gereken daha somut belirtiler.

Bir sekme her zaman tek işlem demek değil

Chrome'un mimarisini "Her sekmeye bir işlem" diye özetlemek kolay olsa da gerçek yapı daha ayrıntılı. Chromium'un teknik belgelerine göre tarayıcının arayüzünü yöneten ana süreç ile web sayfalarını işleyen görüntüleme süreçleri farklı görevler üstleniyor. Bu ayrım, bir web içeriğinin çökmesi durumunda tarayıcının tamamının kapanmasını önlemeye yardımcı oluyor.

Site Isolation, yani site yalıtımı da bu yapının güvenlik tarafını güçlendiriyor. Google, Chrome 67 ile Windows, Mac, Linux ve Chrome OS üzerinde bu korumayı varsayılan olarak devreye aldı. 11 Temmuz 2018 tarihli açıklamada, dağıtımın o aşamada masaüstü kullanıcılarının yüzde 99'una ulaştığı, yüzde 1'lik grubun performans takibi için dışarıda tutulduğu belirtildi.

Yalıtımın amacı, farklı sitelere ait hassas verileri aynı görüntüleme sürecinde bulundurmamaktı. Özellikle Spectre gibi işlemcinin çalışma biçiminden yararlanan saldırılara karşı bu ayrım önem taşıyordu. Kötü amaçlı bir sayfanın kendi sürecindeki belleği okuyabilmesi halinde bile başka sitelerin verilerine erişebileceği alan daraltılıyordu.

Üstelik bir sekmenin içindeki başka bir siteye ait gömülü çerçeve de ayrı süreçte çalışabiliyor. Bu nedenle açık sekme sayısıyla işlem sayısının eşit olması beklenmemeli. Google'ın 2018'deki ölçümünde, süreç sayısının artması gerçek iş yüklerinde toplam bellek kullanımına yaklaşık yüzde 10-13 ek yük getiriyordu. Bu oran, o dönemdeki mimari değişikliğin maliyetini anlatıyor ve bugünkü her bilgisayar için sabit bir tüketim oranı oluşturmuyor.

Yüksek kullanım ne zaman soruna dönüşür?

RAM, uygulamaların üzerinde çalıştığı verilere depolama biriminden daha hızlı erişmesini sağlıyor. Microsoft'un açıklamasında da uygulama ve dosyaların daha yavaş disklerden belleğe alınmasının amacı bu hız farkıyla anlatılıyor. Belleği mümkün olduğunca boş tutmak, bu nedenle tek başına daha iyi performans ölçütü sayılmıyor.

Kapasite ihtiyacı ise yapılan işe göre değişiyor. Microsoft, cihazın uzun süre kullanılabilmesi için 8 GB belleği önerirken fotoğraf ve video düzenleme gibi daha ağır işler için 16 GB veya üzerinin uygun olabileceğini belirtiyor. Bu tür sistem önerilerinden Chrome'un belirli bir RAM miktarıyla her koşulda rahat çalışacağı sonucu çıkarılamaz. Sekmelerin çalıştırdığı uygulamalar ve aynı anda açık diğer programlar da toplam ihtiyacı belirliyor.

Google'ın geliştirici belgeleri, bellek sorunlarını üç ayrı davranışla açıklıyor. Zamanla kötüleşen performans bellek sızıntısına, sürekli kötü performans gereğinden fazla bellek kullanımına, sık duraklamalar ise belleği geri kazandıran temizleme işlemlerinin fazla sık çalışmasına işaret edebiliyor. Böylece her yavaşlama için aynı teşhisi koymak yerine, sorunun nasıl geliştiğine bakmak mümkün oluyor.

Kaynağı Chrome'un Görev Yöneticisi gösteriyor

Windows'un Görev Yöneticisi toplam tüketimi izlemek için kullanışlı olsa da sekmelerin ve uzantıların yükünü ayırmak için Chrome'un kendi paneli daha doğrudan bilgi veriyor. Windows ve Linux'ta Shift + Esc kısayoluyla açılabilen panele, tarayıcı menüsündeki Diğer araçlar ve Görev Yöneticisi yolundan da ulaşılabiliyor.

Google'ın önerdiği yöntem, Bellek sütununa tıklayarak görevleri tüketimlerine göre sıralamak. Böylece belirli bir web uygulamasının veya arka plan görevinin listenin üstünde olup olmadığı görülebiliyor. Gereksiz görev seçilip İşlemi Bitir düğmesiyle durdurulabiliyor. Ancak bu işlem, ilgili görevdeki kaydedilmemiş çalışmaları kaybettirebiliyor.

Uzantılar da kontrol edilmeli. Reklam engelleme, alışveriş veya VPN işlevi sunan bir uzantıyı kullanmıyorsanız, Uzantıları Yönetin bölümünden kapatabilir ya da kaldırabilirsiniz. Google, kullanılmayan uzantıların devre dışı bırakılmasını ve ihtiyaç duyulmayan sekmelerin kapatılmasını Chrome'u hızlandırma adımları arasında sıralıyor.

Chrome Görev Yöneticisi’nde bellek ve JavaScript bellek tüketiminin gösterildiği ekran
Chrome Görev Yöneticisi’nde görevlerin bellek ve JavaScript bellek tüketimini gösteren resmî ekran görüntüsü. Görsel: Google / Chrome for Developers

Bellek Tasarrufu sekmeleri nasıl bekletiyor?

Chrome'un Ayarlar ve Performans bölümündeki Bellek Tasarrufu, kullanılmayan sekmeleri devre dışı bırakarak belleği serbest bırakıyor. Sekme çubuktan silinmiyor, yeniden seçildiğinde sayfa otomatik olarak yükleniyor. Google'ın 8 Aralık 2022'de duyurduğu özellik, 29 Ekim 2024'te açıklanan güncellemeyle üç çalışma seviyesine kavuştu.

Türkçe yardım sayfasında bu seçenekler Orta, Dengeli ve Maksimum olarak yer alıyor. Orta düzeyde sekmeler daha uzun süre sonra devre dışı kalırken Maksimum, kullanılmayan sekmelere daha erken müdahale ediyor. Google'ın önerdiği Dengeli seçeneği ise iki uç arasında çalışıyor.

Her arka plan sekmesi aynı şekilde bekletilmiyor. Ses veya video oynatan sayfalar, ekran paylaşımı, etkin indirmeler ve kısmen doldurulmuş formlar devre dışı bırakmayı engelleyebiliyor. Sürekli çalışması gereken bir siteyi "Her zaman etkin kalacak siteler" listesine eklemek de mümkün.

Tek tek sekmelerin durumunu izlemek isteyenler, Görünüm ayarlarından sekme önizleme kutucuğunda bellek kullanımını gösterebiliyor. Performans sorunlarıyla ilgili uyarılar da kaynak tüketen sekmelerin devre dışı bırakılmasını önerebiliyor. Böylece kullanıcı, bütün tarayıcıyı kapatmadan önce hangi sayfanın yük oluşturduğunu görüp müdahale edebiliyor.

Kaynaklar: Engadget · Google Chrome Yardım · Medyaloji · Chromium · Google Security Blog · Microsoft Support · Chrome for Developers · Google Chrome Yardım (support.google.com) · Google Blog · Google Blog (blog.google)

Görsel: Google / Chrome for Developers