Werkt Firefox Memory Cleaners echt?
Het is geen geheim dat Firefox vrij veel systeemgeheugen kan verbruiken tijdens normaal gebruik. Hoewel het aantal geopende tabbladen en de geïnstalleerde add-ons zeker bijdragen, kan zelfs een conservatief gebruikte standaardinstallatie nogal wat geheugengebruik melden..
Dit heeft ertoe geleid dat een paar Firefox-add-ons bovenkomen die beweren dat ze geheugen vrijmaken dat de browser niet langer nodig heeft, maar dat ze echt werken?
Een overzicht van twee minuten over hoe Windows het geheugen behandelt
Voordat we een geheugenreiniger onderzoeken, is het belangrijk om een beetje inzicht te krijgen in de manier waarop Windows met het geheugen omgaat. Dit is belangrijk, zodat we de resultaten van ons experiment kunnen interpreteren.
Maak je geen zorgen, we zullen dit op een heel hoog niveau behandelen, zodat je geen mega-geek hoeft te zijn om mee te volgen.
Als een snelle disclaimer is dit een extreem korte samenvatting van de basisprincipes van Windows geheugenbeheer. In geen geval mag dit als gezaghebbend of definitief worden beschouwd, omdat 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 het laadt alles wat het nodig heeft en denkt dat het in het geheugen nodig zal hebben. Alleen wat uw systeem daadwerkelijk nodig heeft (zowel Windows als applicaties) 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 feite de gegevens die niet actief worden vereist door het besturingssysteem, maar die op elk moment in het actieve geheugen kunnen worden geladen. Je kunt heel grof de hoeveelheid virtueel geheugen berekenen die je systeem op een bepaald moment heeft met behulp van deze formule:
Virtueel geheugen = (Totaal fysiek geheugen - Gebruikt / Actief fysiek geheugen) + Maximale bestandsgrootte systeempagina
Stel dat u een systeem heeft met 4 GB fysiek geheugen en een maximaal 6 GB groot bestand met pagina's. Vervolgens start u Windows op en opent u een paar applicaties (Outlook, Firefox, enz.) En Windows meldt dat 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 een totaal van 7,5 GB beschikbaar virtueel geheugen.
Vergeet niet dat het besturingssysteem slim genoeg is om te weten dat ongebruikt fysiek geheugen een verspild geheugen is, dus het zal de resterende 1,5 van het fysieke geheugen vullen met wat het verwacht dat u nodig zult hebben, zodat het vrijwel onmiddellijk op afroep toegankelijk is. Dit kan van alles zijn, van geminimaliseerde achtergrondprogrammagegevens 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 groot bestand is (in ons geval 6 GB) op uw harde schijf. Hoewel dit toestaat dat het OS vrijwel alle gegevens opslaat die het nodig heeft om in het geheugen te bewaren, te schrijven en op te halen (oftewel een paginafout), is deze informatie van / naar de harde schijf orden van grootte langzamer dan toegang tot het van het fysieke geheugen. Dit is de reden waarom hoe meer fysiek geheugen u heeft, hoe sneller uw systeem kan werken. Hoe minder uw systeem het paginabestand gebruikt, hoe sneller het werkt.
Monitoring van het geheugengebruik van Firefox
Voor ons onderzoek zullen we gewoon Windows Task Manager gebruiken. We volgen de volgende kolommen (de beschrijvingen worden op de Microsoft-pagina gedefinieerd):
- Werkset = hoeveelheid geheugen in de privéwerkset plus de hoeveelheid geheugen die door het proces wordt gebruikt en door andere processen kan worden gedeeld.
- Piekwerkset = Maximale hoeveelheid werksetgeheugen die door het proces wordt gebruikt.
- Memory (Private Working Set) = Subset van werkset die specifiek beschrijft hoeveel geheugen een proces gebruikt dat niet door andere processen kan worden gedeeld.
- Commit Size = hoeveelheid virtueel geheugen die is gereserveerd voor gebruik door een proces.
We zullen een kant-en-klare installatie van Firefox 4.0.1 gebruiken waarbij alleen de Memory Fox-add-on is geladen. In Firefox hebben we de volgende tabbladen geopend en zullen niets anders doen dan op en neer scrollen over de geladen pagina's.
Na een paar seconden wachten totdat alles is geladen, rapporteert Windows Task Manager het volgende voor Firefox.
Wanneer we nu de add-on voor Memory Fox starten, kijk dan naar de dramatische daling van de hoeveelheid gerapporteerd geheugengebruik.
Merk ook op dat een nieuw proces wordt gestart door deze add-on, die is wat de geheugenfuncties behandelt.
Als u Firefox inactief laat en de waarden voor Werkset en Geheugen bekijkt, ziet u dat er een constante strijd is tussen Firefox waarvoor actief fysiek geheugen nodig is en de add-on voor geheugencleaner die dit geheugen recupereert.
Hier is het gerapporteerde geheugengebruik dat om de paar seconden wordt gemaakt terwijl Firefox inactief is.
Let op de daling in de werkset- en geheugenwaarden. Dit is de geheugenreiniger die het systeemgeheugen ophaalt.
Nadat je een beetje omhoog bent gegaan, zie je nog een druppel.
Schuim. Spoelen. Herhaling.
Als u verder niets doet, maar van tab wisselt en op de geladen pagina's bladert, ziet u dat de getallen iets drastischer fluctueren, wat hieronder wordt uitgelegd.
Interpretatie van de resultaten
Wanneer je het voor het eerst bekijkt, zou je denken, hé, dit werkt geweldig. Maar kijk eens naar de kolom Commit Size en je kunt zien dat deze waarde nooit echt verandert. In feite gaat het omhoog als je de add-on voor geheugenreiniging start.
Vergeet niet dat de kolom Commit Size de werkelijke hoeveelheid geheugen (fysiek + virtueel) rapporteert die Windows nodig heeft om de betreffende applicatie uit te voeren. Dus in ons voorbeeld is ~ 120 MB gereserveerd en actief op het systeem specifiek voor Firefox en bevindt het zich in ongebruikt fysiek geheugen en / of in het systeempaginabestand. Onthoud ook dat als het paginabestand moet worden gebruikt, er een merkbare impact op de prestaties is, 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 het actieve fysieke geheugen naar het virtuele geheugen (omdat het geheugen terugwint moet ergens heen gaan). Wanneer dit gebeurt, heeft Firefox niet langer het geheugen dat nodig is om actief beschikbaar te zijn, dus moet het Windows vragen om de respectieve gegevens die het nodig heeft uit het virtuele geheugen terug te zetten naar het fysieke geheugen. En rond en we gaan ...
In het beste geval doet dit proces helemaal niets nuttigs en in het slechtste geval veroorzaakt het een enorm aantal onnodige paginafouten, want nogmaals, als Windows het paginabestand in het spel moet brengen, is er een opvallende performance hit. Dit kan vooral het geval zijn op systemen die niet veel fysiek geheugen hebben (waarin vrijwel al het virtuele geheugen in een paginabestand wordt bewaard), wat ironisch is omdat dit de systemen zijn waarvoor een geheugenreiniger is "ontworpen" voor.
De moraal van dit hele verhaal is eenvoudig: geheugentuigers doen niets anders dan getallen verschuiven. Elk OS zal weten hoe het geheugen op de juiste manier moet worden behandeld, dus laat ze gewoon hun ding doen.
Beheer van het geheugengebruik van Firefox
Omdat we hebben aangetoond dat add-ons voor het opschonen van geheugen niet echt nuttig zijn, wat kun je dan doen aan de grote hoeveelheid geheugen die Firefox gebruikt? Hier zijn een paar suggesties:
- Verwijder add-ons die u niet nodig hebt (vooral niet met geheugen opschonen).
- Houd het aantal tabbladen dat u open hebt tot een minimum beperkt.
- Sluit Firefox regelmatig af en start het opnieuw.
- Voeg meer geheugen toe aan uw systeem.
- Maak je geen zorgen.
Memory Fox Next Add-on voor Firefox