Det er ingen hemmelighet at Firefox kan konsumere ganske mye systemminne under normal bruk. Mens antall faner du har åpnet og de installerte tilleggene absolutt bidrar, kan til og med en konservativt brukt ut av boksen installere ganske mye minnebruk.
Dette har fått noen Firefox-tillegg til å dukke opp som hevder å frigjøre minne nettleseren ikke lenger trenger, men fungerer de egentlig?
En to minutters oversikt over hvordan Windows håndterer minne
Før vi dykker ned i å undersøke en minnevask, er det viktig å forstå litt om hvordan Windows håndterer minne. Dette vil være viktig, slik at vi kan tolke resultatene av eksperimentet vårt.
Ikke bekymre deg, vi vil dekke dette på et veldig høyt nivå, slik at du ikke trenger å være en mega-geek for å følge med.
Som en rask ansvarsfraskrivelse er dette en ekstremt kort oppsummering av det grunnleggende om Windows-minneadministrasjon. Dette skal på ingen måte betraktes som autoritativt eller definitivt, da det bare forklares til nivå som gjelder for gjenstanden for denne artikkelen.
Windows er smart nok til å vite at ubrukt fysisk minne er bortkastet minne, så det laster alt det trenger og tror det trenger i minnet. Imidlertid rapporteres bare det systemet ditt faktisk trenger (både Windows og applikasjoner) og bruker aktivt på det nåværende tidspunktet som brukt fysisk minne. Resten (det Windows tror det vil trenge) ligger i det som kalles virtuelt minne.
Virtuelt minne er i hovedsak dataene som ikke er aktivt påkrevd av operativsystemet, men som er klar til å bli lastet inn i aktivt minne når som helst. Du kan veldig grovt beregne mengden virtuelt minne systemet ditt har til enhver tid ved hjelp av denne formelen:
Virtuelt minne = (totalt fysisk minne - brukt / aktivt fysisk minne) + maksimal filstørrelse på systemsiden
Anta at du har et system med 4 GB fysisk minne og en maksimal sidefil på 6 GB. Deretter starter du opp Windows og åpner noen få applikasjoner (Outlook, Firefox, etc.), og Windows rapporterer at 2,5 GB fysisk minne blir brukt. Dette betyr at du har 1,5 GB “ubrukt” fysisk minne og en 6 GB sidefil for totalt 7,5 GB tilgjengelig virtuelt minne.
Husk at operativsystemet er smart nok til å vite at ubrukt fysisk minne er bortkastet minne, så det vil fylle de resterende 1,5 fysiske minnene med det de forventer at du trenger, slik at det kan nås på forespørsel nesten øyeblikkelig. Dette kan være alt fra minimert bakgrunnsprogramdata til vanlige OS-funksjoner.
Så hva skjer når Windows går tom for fysisk minne for å bruke som virtuelt minne? Den skriver disse dataene til systemsidefilen, som er en stor (i vårt tilfelle 6 GB) fil på harddisken din. Selv om dette gjør det mulig for OS å lagre stort sett alle data det trenger for å lagre i minnet, er skriving og henting (også kalt en sidefeil), størrelsesorden langsommere enn å få tilgang til det fra det fysiske minnet. Dette er grunnen til at jo mer fysisk minne du har, jo raskere kan systemet kjøre. Jo mindre systemet bruker sidefilen, desto raskere vil den utføre.
Overvåker Firefox minnebruk
For vår undersøkelse bruker vi ganske enkelt Windows Task Manager. Vi sporer følgende kolonner ( beskrivelsene er definert på Microsofts side ):
- Working Set = Mengden minne i det private arbeidssettet pluss mengden minne prosessen bruker som kan deles av andre prosesser.
- Peak Working Set = Maksimal mengde arbeidssettminne som brukes av prosessen.
- Memory (Private Working Set) = Delsett av arbeidssett som spesifikt beskriver mengden minne en prosess bruker som ikke kan deles av andre prosesser.
- Commit Size = Mengden virtuelt minne som er reservert for bruk av en prosess.
Vi bruker en ut av boksen installasjonen av Firefox 4.0.1 med bare Memory Fox-tillegget lastet inn. I Firefox vil vi ha følgende faner åpne og vil ikke gjøre noe annet enn å bla opp og ned de lastede sidene.
Etter å ha ventet et øyeblikk på at alt skulle fullføres, rapporterer Windows Task Manager følgende for Firefox.
Nå når vi starter Memory Fox-tillegget, kan du se på det dramatiske fallet i rapportert minnebruk.
Vær også oppmerksom på at en ny prosess startes av dette tillegget som er det som håndterer minnefunksjonene.
Hvis du lar Firefox være inaktiv og ser på arbeidsverdiene og minneverdiene, kan du se at det er en konstant kamp mellom Firefox som trenger aktivt fysisk minne og minne renere tillegg som gjenvinner dette minnet.
Her er rapportert minnebruk tatt noen få sekunder mens Firefox blir inaktiv.
Legg merke til nedgangen i arbeidsverdiene og minneverdiene. Dette er minne renere som gjenvinner systemminnet.
Etter å ha gått opp litt, kan du se en ny dråpe.
Skum. Skylle. Gjenta.
I tillegg, hvis du ikke gjør annet enn å bytte fane og bla opp og ned på de sidene som er lastet inn, kan du se at tallene svinger litt mer drastisk, noe som vil bli forklart nedenfor.
Tolke resultatene
Når du først ser det, ville du tro, hei dette fungerer bra. Men ta en titt på Commit Size-kolonnen, og du kan se at denne verdien aldri virkelig endres. Faktisk øker når du begynner å rengjøre tillegget for minne.
Husk at kolonnen Forpliktelsesstørrelse rapporterer den faktiske mengden minne (fysisk + virtuelt) Windows trenger for å kjøre det aktuelle programmet. Så i vårt eksempel er ~ 120 MB reservert og aktivt på systemet spesielt for Firefox og ligger i enten ubrukt fysisk minne og / eller på systemets sidefil. Husk også at hvis sidefilen må brukes, er det en merkbar ytelsespåvirkning fordi det virtuelle minnet må skrives til og leses fra harddisken, noe som er betydelig tregere enn fysisk minne.
Så i hovedsak flytter minneopprydderen det aktive fysiske minnet til det virtuelle minnet (fordi minnet er på nytt må gå et sted). Når dette skjer, har ikke Firefox lenger minnet det trenger for å fungere aktivt tilgjengelig, så det må be Windows om å flytte de respektive dataene det trenger fra det virtuelle minnet tilbake til det fysiske minnet. Og rundt og rundt går vi ...
I beste fall gjør denne prosessen ikke noe nyttig i det hele tatt, og i verste fall forårsaker det en enorm mengde unødvendige sidefeil, for igjen, hvis Windows må bringe sidefilen i spill, vil det bli en merkbar ytelsestreff. Dette kan spesielt være tilfelle på systemer som ikke har så mye fysisk minne (hvor stort sett alt virtuelt minne er lagret i en sidefil), noe som er ironisk fordi dette er systemene en minnerensere ble “designet” for.
Moralen i hele denne historien er ganske enkelt, hukommelsesrensere gjør ikke annet enn å skifte rundt tall. Ethvert operativsystem kommer til å vite hvordan man skal håndtere minne riktig, så bare la dem gjøre sine ting.
Administrere Firefoxs minnebruk
Siden vi har vist at tilleggsutstyr til minneopprydding egentlig ikke gjør noe nyttig, hva kan du gjøre med den store mengden minne Firefox bruker? Her er noen forslag:
- Fjern tillegg du ikke trenger (spesielt minne som rengjøres).
- Hold antall faner du har åpnet til et minimum.
- Lukk Firefox regelmessig og start den på nytt.
- Legg til mer minne på systemet ditt.
- Ikke bekymre deg for det.