9Sep

Werken Firefox-geheugenopladers 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 werken ze echt?

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 zal belangrijk zijn, 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 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 zijn. 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 nodig is) 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 gewenst moment in het actieve geheugen kunnen worden geladen. Je kunt heel grof de hoeveelheid virtueel geheugen berekenen die je systeem ooit heeft met behulp van deze formule:

Virtueel geheugen =( Totaal fysiek geheugen - gebruikt / actief fysiek geheugen) + Maximale systeempagina Bestandsgrootte

Dus, stel dat je een systeem hebtmet 4 GB fysiek geheugen en een maximaal 6 GB groot bestand. 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.

Onthoud 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 bijna onmiddellijk onmiddellijk kan worden opgevraagd. Dit kan van alles zijn, van geminimaliseerde achtergrond programmagegevens tot algemene 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 Firefox's geheugengebruik

Voor ons onderzoek zullen we gewoon Windows Task Manager gebruiken. We zullen de volgende kolommen volgen( de beschrijvingen worden op de Microsoft-pagina gedefinieerd):

  • Working Set = hoeveelheid geheugen in de privé-werkset plus de hoeveelheid geheugen die het proces gebruikt dat door andere processen kan worden gedeeld.
  • Piekwerkset = Maximale hoeveelheid werksetgeheugen die door het proces wordt gebruikt.
  • -geheugen( privéwerkset) = 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 'out-of-the-box' 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.

Nadat u even gewacht hebt op het voltooien van het laden, meldt Windows Task Manager het volgende voor Firefox.

Als 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.

Firefox inactief en kijkend naar de werkset- en geheugenwaarden, kunt u zien dat er een voortdurende strijd is tussen Firefox die een actief fysiek geheugen nodig heeft en de invoegtoepassing voor geheugencleaner die dit geheugen terugwint.

Hier is het gerapporteerde geheugengebruik elke paar seconden genomen terwijl Firefox inactief was.

Let op de daling van de werkset- en geheugenwaarden. Dit is de geheugenreiniger die het systeemgeheugen ophaalt.

Na een tijdje omhoog te gaan, kun je nog een druppel zien.

Lather. 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.

De resultaten interpreteren

Als je het voor het eerst bekijkt, zou je denken, hé, dit werkt fantastisch. 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 aanzienlijke impact op de prestaties is, omdat het virtuele geheugen moet worden weggeschreven naar en gelezen vanaf 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 weer gaan we. ..

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, dan is er eenmerkbare prestatieshit. Dit kan vooral het geval zijn op systemen die niet veel fysiek geheugen hebben( waarbij vrijwel al het virtuele geheugen in een paginabestand wordt bewaard), wat ironisch is omdat dit de systemen zijn waarvoor een geheugenreiniger is "ontworpen".

De moraal van dit hele verhaal is eenvoudig: geheugentuigers doen niets anders dan cijfers verschuiven. Elk OS zal weten hoe het geheugen op de juiste manier moet worden behandeld, dus laat ze gewoon hun ding doen.

Firefox's gebruik van geheugen beheren

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 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.

Memory Fox Next Add-on voor Firefox