bine ați navigat pe insula mea de pe internet

Am setat Waterfox-ul să nu mai consume toată memoria RAM

Totul a pornit de la clip pe care l-am văzut pe YouTube: Is Firefox a Pig?. Nu era ceva la care mă așteptam să petrec mai mult de câteva minute, dar m-a prins pentru că punea degetul exact pe problema cu care mă luptam și cu care se luptă aproape fiecare utilizator de Firefox. Folosesc Waterfox - un navigator bazat pe Firefox, care moștenește cam toate caracteristicile lui, inclusiv tendința asta de a mânca RAM fără milă.

Deschideam Waterfox dimineața, cu câteva tab-uri, și seara, după ce terminam treaba, vedeam în Task Manager că ocupase o groază de memorie. Nu vorbeam de ceva nesemnificativ, ci de câțiva gigabytes care dispăreau pur și simplu, fără să am deschise zeci de tab-uri grele. Clipul explica de ce se întâmplă asta și prezenta o serie de setări ascunse în about:config care controlează exact cum se comportă navigatorul cu memoria. Nu le găsești în meniul obișnuit și nu sunt evidente, dar fac o diferență uriașă. Le-am aplicat imediat și pe Waterfox, pentru că fiind bazat pe același motor ca Firefox, funcționează identic.

Primul pas: limitarea cache-ului de memorie

Setarea pe care am modificat-o prima și care a făcut cea mai mare diferență se numește browser.cache.memory.capacity. Valoarea implicită e -1, ceea ce înseamnă că navigatorul decide singur câtă memorie să folosească pentru cache - iar „-1„ înseamnă „cât vrea el", nu „cât am eu nevoie". Am schimbat-o la 2097152, adică 2 GB. Nu e mult, dar e suficient ca siturile să se încarce rapid, iar acum Waterfox nu mai poate depăși această limită indiferent cât ar încerca. Fără limitarea asta, navigatorul poate ocupa cu ușurință 6-8 GB după o sesiune mai lungă de navigare.

Dacă vrei să încerci, intri în about:config, cauți setarea și o schimbi din -1 la valoarea de mai sus. Trebuie să restartezi navigatorul după modificare.

Istoricul de navigare și memoria ascunsă

O altă setare care m-a surprins a fost browser.sessionhistory.max_total_viewers. Aceasta controlează câte pagini sunt ținute în memoria specială pentru butonul „Înapoi„. Waterfox folosește aceeași tehnologie bfcache ca și Firefox, care păstrează starea paginilor ca să poți reveni instantaneu la ele - sună bine în teorie, dar fiecare pagină ținută acolo ocupă RAM, iar valoarea implicită e tot -1, adică „cât consideră el de cuviință". Am pus-o la 10, ceea ce înseamnă că doar ultimele zece pagini sunt păstrate în memorie pentru navigarea rapidă. Da, când apeși „Înapoi" pe o pagină mai veche, aceasta se reîncarcă de pe internet, dar pentru mine asta e un preț mic de plătit pentru câteva sute de MB eliberate constant.

Procesele din spate și taxele lor

Am modificat și dom.ipc.processCount, care controlează câte procese separate folosește navigatorul pentru tab-uri. Implicit sunt 8 procese, iar fiecare are o „taxă de intrare" în memorie undeva la 40-50 MB, chiar dacă nu face nimic. Am redus la 4 și am economisit 150-200 MB de RAM pur și simplu prin asta. Pe un sistem cu procesor decent nu se simte nicio diferență la viteză, dar memoria rămâne mult mai liberă.

Imaginile și decodificarea lor

Am mai găsit o setare care pare mică, dar contează: image.mem.decode_bytes_at_a_time. Aceasta controlează câte date de imagine sunt procesate într-un singur ciclu. Implicit e 16384, adică 16 KB, și am redus-o la jumătate, la 8192. Nu e o valoare extremă, dar ajută la evitarea vârfurilor bruște de utilizare a memoriei în timpul încărcării imaginilor - acestea se încarcă mai gradual, fără acele mici blocaje care apar când navigatorul încearcă să proceseze totul deodată.

Cât de des salvează navigatorul sesiunea

Un lucru pe care mulți nu îl știu e că Waterfox salvează automat sesiunea curentă la un interval regulat, scriind pe disc și consumând puțin din CPU la fiecare ciclu. Setarea browser.sessionstore.interval controlează cât de des se întâmplă asta, în milisecunde, iar implicit e setată la 15000, adică la fiecare 15 secunde. Am crescut-o la 60000, o dată pe minut, ceea ce reduce considerabil activitatea de fundal fără să afecteze funcționalitatea.

Ce am obținut în final

După ce am aplicat toate aceste modificări, diferența a fost clară. Waterfox nu mai „umflă" memoria în timp, iar după ore de navigare consumul rămâne stabil în loc să crească progresiv ca înainte. Am verificat în htop și procesele ocupă mult mai puțin decât obișnuiau.

N-am renunțat la nimic important. Siturile se încarcă rapid, navigarea e fluidă, iar navigatorul nu mai înghite toată memoria sistemului. Singurul compromis real e că butonul „Înapoi" reîncarcă paginile mai vechi de pe net, dar pentru mine asta nu contează prea mult în schimbul stabilității pe care o câștig.

Dacă și tu folosești Firefox sau Waterfox și te confrunți cu aceeași problemă, începe cu clipul Is Firefox a Pig? - explică bine de ce se întâmplă treaba asta și de acolo iei exact setările de care ai nevoie. Tot ce trebuie să faci după e să deschizi about:config și să le aplici.

← Inapoi

Comentarii