11 Şubat 2009 Çarşamba

Firefox'un çok hafıza yemesi nasıl engellenir

Uzun zamandır Microsoft Internet Explorer yerine Firefox kullanıyorum ve oldukça da memnunum. Ancak Firefox 3.0 çıktıktan sonra bir hafıza (RAM) sızıntısı sorunu ortaya çıktı. Hafıza sızıntısını yavaşlayan bir bilgisayar olarak hayatınızda hissediyorsunuz :)

Bir süre çalışan Firefox gereğinden fazla hafıza kullanmaya başlıyor ve bilgisayar gittikçe yavaşlamaya başlıyor. Aynı anda birden fazla tab sürekli açık olursa bu durum daha da hızlı ve ölümcül oluyor. Öyle ki zaman zaman Firefox'un 700 MB hafıza kullandığını dahi gördüm.

Şimdi bir test yapacağız: Bu yazıyı yazmaya başladığımda hafıza kullanımına baktım, 90.404K olarak buraya not ediyorum. Bu arada 8 tane de tab açık olarak duruyor. Yazının sonunda hafıza kullanımını tekrar yazacağım.

Doğal olarak bu durumun neden kaynaklandığını araştırdım ve bir takım sonuçlara ulaştım.

Hatalı yazılmış Firefox eklentileri ve uzantıları.
Eğer Firefox'ta eklenti ve uzantılarınız varsa (ki mutlaka vardır) gereksiz hafıza yemediklerinden emin olmanız gerekiyor. Çünkü hafıza sızıntılarının en büyük nedenleri bunlar. Mozillazine sitesinde hatalı bütün uzantı ve eklentilerin bir listesi bulunmakta. Bazıları yeni sürüme geçirilerek güncellenebiliyor ve sorun ortadan kalkıyor ama bazılarını kullanmayı bırakmanız gerekiyor.
Site adresi: http://kb.mozillazine.org/Problematic_extensions

İndirme geçmişi
İndirme geçmişi de hafıza kullanımını artıran en büyük nedenlerden biri. Bundan kurtulmak için aşağıdaki adımlar izlenmeli:

Araçlar -> Seçenekler -> Gizlilik -> İndirdiklerimi anımsa - Bunun işaretli olmaması gerekiyor.

about:config
Firefox'ta ince ayar yapmanıza izin veren bir sayfa bulunmakta. Adres satırına "about:config" yazıp entera basarsanız özel ayar bölümüne giriyorsunuz. Ama öncelikle bilmediğiniz bir şey yapmayacağınıza dair söz veriyorsunuz :)) Çünkü herşeyi dağıtıp atabilirsiniz, cidden bilmediğiniz bir şeyi kurcalamayın.

Bu bölümde konuyla ilgili 3 ayar bulunmakta:
  1. browser.cache.memory.capacity
    Firefox (veya genel olarak tüm tarayıcılar) gezdiğiniz sayfalardaki grafik ögeleri tekrar tekrar indirmemek için hafızada saklıyorlar ve gerektiğinde kullanıyorlar. Bu bölümdeki değer ne kadar hafızanın bu iş için kullanılacağını ayarlıyor. Bu sayıyı düşürmek hafıza kullanımını düşürüyor ancak sayfaların yüklenmesi uzuyor, tersi ise tersi oluyor.

    Bu ayar default olarak kapalı geliyor değiştirmek isterseniz kendiniz eklemeniz gerekiyor. Bunun nasıl yapıldığını buraya yazmıyorum. Başka bir yazı konusu olabilir.

    Genel olarak ayarlar şu şekilde olmalı:
    Fiziksel hafıza
    Cache (KB olarak)
    32 MB 2048
    64 MB 4096
    128 MB 8192
    256 MB 14336
    512 MB 22528
    1 GB 32768
    2 GB 45056
    4 GB 59392
    8 GB 75776
  2. browser.cache.memory.enable
    Bu ayar cache sistemini açıp kapatıyor. True zaten default (varsayılan) değer false yaparsanız hafıza bu işler için kullanılmıyor. Tabii sayfalar çok yavaş açılmaya başlıyor, çünkü her seferinde herşey internetten tekrar yükleniyor. Pek tavsiye edilmez.

  3. browser.sessionhistory.max_total_viewers
    Grafik ögelerin yanında gezdiğiniz sayfalar da hafızada tutuluyor. Böylece tarayıcının İLERİ - GERİ butonuna bastığınızda anında sayfalar gelebiliyor. Kaç adet sayfanın hafızada tutulacağı bu ögenin değeri ile belirleniyor. Default olarak "-1" olarak ayarlanmış, yani otomatik. Ancak bunu 0 - 8 arası değiştirebilirsiniz. 0 (sıfır) hiç sayfa tutma demek, 8 sekiz sayfa tut demek vb.
Çok zorda iseniz yukarıdaki değerlerle oynayıp deneme yapabilirsiniz.

Bir çok sitede Firefox'un bu hafıza sorununa çözüm olarak aşağıdaki yaklaşım önerilmiş. Ancak bu yaklaşım hafıza kullanımını sanal olarak azaltıyor. Yani, hafızadaki bilgileri hard diske yazıp oradan işlemlere devam ediyor ki pek de sağlıklı bir çözüm değil. Zira zamanla hafıza tekrar şişiyor. İşte o çözüm:
  1. Adres satırına about:config yazıp entera basın
  2. Sayfanın herhangi bir yerine sağ tıklayıp New -> Boolean seçin
  3. Çıkan pencereye şunu yazıp entera basın: config.trim_on_minimize
  4. Şimdi True'yu seçip entera basın
  5. Firefox'u yeniden başlatın
Bu işlemi yaptıktan sonra Firefox penceresini her minimize ettiğinizde hafızadaki bilgiler hard diske yazılacak ve doğal bir sonuç olarak hafıza kullanımı 10 MB civarına düşecek. Pencereyi tekrar maximize ettiğinizde hafıza kullanımı yeniden artacak ancak eskisi gibi yüksek düzeyde olmayacak. Ben bu yaklaşımı önermiyorum.

Firefox'un ne kadar hafıza kullandığını görün:

Tarayıcının şu andane kadar hafızayı ne için kullandığını hemen görmek için aşağıdaki satırı adres çubuğuna yazıp entera basın:

about:cache?device=memory

Hafıza sorununa kesin çözüm:

RAMBack isimli bir Firefox eklentisi (add on) mevcut bu eklentiyi hemen kurun. Bu eklenti Araçlar menüsü altına CLEAR CACHES şeklinde bir menü ekliyor ve hafızayı manuel temizliyorsunuz. En mükemmel ve kolay çözüm bu gibi görünüyor.

Eklentiyi indirebileceğiniz adres: https://addons.mozilla.org/en-US/firefox/addon/5972

Testin sonucu: Yazıyı bitiridiğim zaman hafıza 124.900 KB olmuştu. Clear cache çalıştırma vakti geliyor :)

Hiç yorum yok:

Yorum Gönder