Het is geen geheim dat Firefox bij normaal gebruik behoorlijk wat systeemgeheugen kan verbruiken. Hoewel het aantal geopende tabbladen en de geïnstalleerde add-ons zeker bijdragen, kan zelfs een conservatief gebruikte standaardinstallatie behoorlijk wat geheugengebruik melden.
Dit heeft ertoe geleid dat een paar Firefox-add-ons naar boven zijn gekomen die beweren geheugen vrij te maken dat de browser niet langer nodig heeft, maar werken ze echt?
Een overzicht van twee minuten over hoe Windows met geheugen omgaat
Voordat we een geheugencleaner gaan onderzoeken, is het belangrijk om een beetje te begrijpen hoe Windows met geheugen omgaat. Dit zal belangrijk zijn zodat we de resultaten van ons experiment kunnen interpreteren.
Maak je geen zorgen, we zullen dit op een zeer hoog niveau behandelen, zodat je geen mega-nerd hoeft te zijn om mee te doen.
Als een korte disclaimer is dit een extreem korte samenvatting van de basisprincipes van Windows-geheugenbeheer. Dit mag in geen geval als gezaghebbend of definitief worden beschouwd, aangezien het alleen wordt uitgelegd op het niveau dat van toepassing is op het onderwerp van dit artikel.
Windows is slim genoeg om te weten dat ongebruikt fysiek geheugen verspild geheugen is, dus laadt het alles wat het nodig heeft en denkt het nodig te hebben in het geheugen. Alleen wat uw systeem werkelijk nodig heeft (zowel Windows als toepassingen) en momenteel actief gebruikt, wordt gerapporteerd als gebruikt fysiek geheugen. De rest (wat Windows denkt dat het nodig heeft) bevindt zich in wat virtueel geheugen wordt genoemd.
Virtueel geheugen is in wezen de gegevens die niet actief door het besturingssysteem worden vereist, maar die op elk moment in het actieve geheugen kunnen worden geladen. U kunt de hoeveelheid virtueel geheugen die uw systeem op elk moment heeft heel grof berekenen met behulp van deze formule:
Virtueel geheugen = (totaal fysiek geheugen - gebruikt / actief fysiek geheugen) + maximale bestandsgrootte systeepagina
Stel dat u een systeem heeft met 4 GB fysiek geheugen en een paginabestand van maximaal 6 GB. Je start dan Windows op en opent een paar applicaties (Outlook, Firefox, etc.) en Windows meldt dat er 2,5 GB fysiek geheugen wordt gebruikt. Dit betekent dat u 1,5 GB "ongebruikt" fysiek geheugen en een paginabestand van 6 GB hebt voor in totaal 7,5 GB beschikbaar virtueel geheugen.
Onthoud dat het besturingssysteem slim genoeg is om te weten dat ongebruikt fysiek geheugen verspild geheugen is, dus het vult de resterende 1,5 fysiek geheugen met wat het verwacht nodig te hebben, zodat het vrijwel onmiddellijk op verzoek kan worden geopend. Dit kan van alles zijn, van geminimaliseerde programmagegevens op de achtergrond tot veelgebruikte OS-functies.
Dus wat gebeurt er als Windows geen fysiek geheugen meer heeft om als virtueel geheugen te gebruiken? Het schrijft deze gegevens naar het systeempaginabestand, dat een enorm (in ons geval 6 GB) bestand op uw harde schijf is. Hoewel dit het besturingssysteem toestaat om vrijwel alle gegevens die het nodig heeft in het geheugen op te slaan, is het schrijven en ophalen (ook wel een paginafout genoemd) deze informatie van / naar de harde schijf ordes van grootte langzamer dan toegang tot het fysiek geheugen. Dit is de reden waarom hoe meer fysiek geheugen u heeft, hoe sneller uw systeem kan werken. Hoe minder uw systeem zijn paginabestand gebruikt, hoe sneller het zal presteren.
Het geheugengebruik van Firefox controleren
Voor ons onderzoek zullen we gewoon Windows Task Manager gebruiken. We zullen de volgende kolommen volgen ( de beschrijvingen zijn gedefinieerd op de pagina van Microsoft ):
- Werkset = hoeveelheid geheugen in de privé-werkset plus de hoeveelheid geheugen die het proces gebruikt dat kan worden gedeeld door andere processen.
- Peak Working Set = Maximale hoeveelheid werksetgeheugen dat door het proces wordt gebruikt.
- Geheugen (Private Working Set) = Subset van werkset die specifiek de hoeveelheid geheugen beschrijft die een proces gebruikt en die niet kan worden gedeeld door andere processen.
- Commit Size = hoeveelheid virtueel geheugen dat is gereserveerd voor gebruik door een proces.
We zullen een standaardinstallatie van Firefox 4.0.1 gebruiken met alleen de Memory Fox-add-on geladen. In Firefox hebben we de volgende tabbladen geopend en zullen we niets anders doen dan op en neer scrollen door de geladen pagina's.
Na even wachten totdat alles is geladen, rapporteert Windows Taakbeheer het volgende voor Firefox.
Als we nu de Memory Fox-add-on starten, kijk dan naar de dramatische daling van de hoeveelheid gerapporteerd geheugengebruik.
Houd er ook rekening mee dat er een nieuw proces wordt gestart door deze add-on, die de geheugenfuncties afhandelt.
Als u Firefox inactief laat en de Werkset- en Geheugenwaarden bekijkt, kunt u zien dat er een constante strijd is tussen Firefox die actief fysiek geheugen nodig heeft en de add-on voor het opschonen van geheugen die dit geheugen terugwint.
Hier is het gerapporteerde geheugengebruik dat elke paar seconden wordt ingenomen terwijl Firefox inactief is.
Let op de daling van de werkset- en geheugenwaarden. Dit is de geheugenreiniger die het systeemgeheugen terugwint.
Nadat je een stukje omhoog bent gegaan, kun je nog een druppel zien.
Schuim. Spoelen. Herhaling.
Bovendien, als u niets anders doet dan tussen tabbladen wisselen en op en neer door de geladen pagina's scrollen, kunt u zien dat de cijfers een beetje drastischer fluctueren, wat hieronder wordt uitgelegd.
De resultaten interpreteren
Als je er voor het eerst naar kijkt, zou je denken: hé, dit werkt geweldig. Maar kijk eens naar de Commit Size-kolom en je kunt zien dat deze waarde nooit echt verandert. In feite gaat het omhoog zodra u de add-on voor het opschonen van geheugen start.
Onthoud dat de kolom Commit Size de werkelijke hoeveelheid geheugen (fysiek + virtueel) vermeldt die Windows nodig heeft om de betreffende applicatie uit te voeren. Dus in ons voorbeeld is de ~ 120 MB gereserveerd en actief op het systeem specifiek voor Firefox en bevindt zich ofwel in ongebruikt fysiek geheugen en / of het systeembestand. Onthoud ook dat als het paginabestand moet worden gebruikt, dit een merkbare invloed heeft op de prestaties omdat het virtuele geheugen moet worden geschreven naar en gelezen van de harde schijf, wat aanzienlijk langzamer is dan fysiek geheugen.
Dus in wezen verplaatst de geheugenopruimer actief fysiek geheugen naar virtueel geheugen (omdat het geheugen dat wordt teruggevorderd ergens naartoe moet). Wanneer dit gebeurt, heeft Firefox niet langer het geheugen dat het nodig heeft om actief te functioneren, dus het moet Windows vragen om de respectieve gegevens die het nodig heeft van virtueel geheugen terug naar fysiek geheugen te verplaatsen. En rond en rond gaan we ...
In het beste geval doet dit proces helemaal niets nuttigs en in het slechtste geval veroorzaakt het een enorme hoeveelheid onnodige paginafouten, want nogmaals, als Windows het paginabestand in het spel moet brengen, is er een merkbare prestatiehit. Dit kan vooral het geval zijn op systemen die niet veel fysiek geheugen hebben (waar vrijwel al het virtuele geheugen in een paginabestand wordt bewaard), wat ironisch is omdat dit de systemen zijn waarvoor een geheugenopruimer is "ontworpen".
De moraal van dit hele verhaal is simpelweg: geheugenopruimers doen niets anders dan cijfers verschuiven. Elk besturingssysteem zal weten hoe het op de juiste manier met geheugen moet omgaan, dus laat ze gewoon hun ding doen.
Beheer van het geheugengebruik van Firefox
Aangezien we hebben aangetoond dat add-ons voor het opschonen van geheugen niet echt iets nuttigs doen, wat kunt u dan doen aan de grote hoeveelheid geheugen die Firefox gebruikt? Hier zijn een paar suggesties:
- Verwijder add-ons die u niet nodig heeft (vooral die voor het opschonen van geheugen).
- Houd het aantal geopende tabbladen tot een minimum beperkt.
- Sluit Firefox regelmatig af en start het opnieuw.
- Voeg meer geheugen toe aan uw systeem.
- Maak je er geen zorgen over.