I pulitori di memoria di Firefox funzionano davvero?

 image

Non è un segreto che Firefox può consumare un bel po 'di memoria di sistema durante il normale utilizzo. Mentre il numero di schede aperte e i componenti aggiuntivi installati contribuiscono sicuramente, anche un'installazione out-of-box utilizzata in modo conservativo può riportare un po 'di utilizzo della memoria.

Ciò ha causato la comparsa di alcuni componenti aggiuntivi di Firefox che dichiarano di liberare memoria il browser non è più necessario, ma funzionano davvero?

Una panoramica di due minuti su come Windows gestisce la memoria

 image

Prima di approfondire l'esame di un pulitore della memoria, è importante capire un po 'come Windows gestisce la memoria. Questo sarà importante per poter interpretare i risultati del nostro esperimento.

Non ti preoccupare, lo tratteremo a un livello molto alto, quindi non devi essere un mega geek per seguirlo.

Come disclaimer rapido, questo è un sommario estremamente breve delle basi della gestione della memoria di Windows. Questo non dovrebbe in alcun modo essere considerato autorevole o definitivo in quanto è spiegato solo al livello applicabile all'oggetto di questo articolo.

Windows è abbastanza intelligente da sapere che la memoria fisica inutilizzata è memoria sprecata, quindi carica tutto ciò di cui ha bisogno e pensa di averne bisogno in memoria. Tuttavia, solo ciò di cui il tuo sistema ha effettivamente bisogno (sia Windows che applicazioni) e che sta attualmente utilizzando attivamente viene riportato come memoria fisica utilizzata. Il resto (ciò che Windows pensa che sarà necessario) risiede nella cosiddetta memoria virtuale.

La memoria virtuale è essenzialmente i dati che non sono attivamente richiesti dal sistema operativo ma sono pronti per essere caricati nella memoria attiva in qualsiasi momento. Puoi calcolare in modo molto approssimativo la quantità di memoria virtuale che il tuo sistema ha in qualsiasi momento usando questa formula:

Memoria virtuale = (memoria fisica totale – memoria fisica utilizzata / attiva) + dimensione massima del file della pagina di sistema

Supponiamo quindi di avere un sistema con 4 GB di memoria fisica e un file di pagine massimo di 6 GB. Quindi avvia Windows e apri alcune applicazioni (Outlook, Firefox, ecc.) E Windows segnala che vengono utilizzati 2,5 GB di memoria fisica. Ciò significa che hai 1,5 GB di memoria fisica “non utilizzata” e un file di pagina di 6 GB per un totale di 7,5 GB di memoria virtuale disponibile.

Ricorda, il sistema operativo è abbastanza intelligente da sapere che la memoria fisica inutilizzata è memoria sprecata, quindi riempirà la restante 1,5 di memoria fisica con ciò che anticipa di cui avrai bisogno in modo che possa accedervi su richiesta quasi istantaneamente. Questo può essere qualsiasi cosa, dai dati del programma in background minimizzati alle funzioni del sistema operativo comuni.

Quindi cosa succede quando Windows esaurisce la memoria fisica da utilizzare come memoria virtuale? Scrive questi dati nel file della pagina di sistema che è un enorme file (nel nostro caso 6 GB) sul tuo disco rigido. Sebbene ciò consenta al sistema operativo di archiviare praticamente tutti i dati di cui ha bisogno per conservare in memoria, la scrittura e il recupero (noto anche come errore di pagina) queste informazioni sul / dal disco rigido sono ordini di grandezza più lenti rispetto all'accesso dalla memoria fisica. Questo è il motivo per cui più memoria fisica hai, più velocemente può essere eseguito il tuo sistema. Meno il sistema utilizza il suo file di paging, più veloce sarà.

Monitoraggio dell'utilizzo della memoria di Firefox

Per le nostre indagini utilizzeremo semplicemente Task Manager di Windows. Tracciamo le seguenti colonne (le descrizioni sono definite nella pagina di Microsoft):

  • Working Set = quantità di memoria nel working set privato più la quantità di memoria utilizzata dal processo che può essere condivisa da altri processi.
  • Peak Working Set = Quantità massima di memoria del working set utilizzata dal processo.
  • Memoria (set di lavoro privato) = sottoinsieme del set di lavoro che descrive in modo specifico la quantità di memoria utilizzata da un processo che non può essere condivisa da altri processi.
  • Commit Size = quantità di memoria virtuale riservata per l'uso da parte di un processo.

Immagine

Utilizzeremo un'installazione immediata di Firefox 4.0.1 con solo il componente aggiuntivo Memory Fox caricato. In Firefox, avremo le seguenti schede aperte e non faremo altro che scorrere su e giù le pagine caricate.

Immagine

Dopo aver atteso qualche istante affinché tutto finisca il caricamento, Task Manager di Windows segnala quanto segue per Firefox.

Immagine

Ora, quando iniziamo il componente aggiuntivo Memory Fox, osserviamo il drastico calo della quantità di memoria segnalata.

Immagine

Si noti inoltre che questo componente aggiuntivo avvia un nuovo processo, che è ciò che gestisce le funzioni di memoria.

Immagine

Lasciando Firefox inattivo e guardando i valori di Working Set e Memory, è possibile notare una costante lotta tra Firefox che necessita di memoria fisica attiva e il componente aggiuntivo di pulitura della memoria che richiede di recuperare questa memoria.

Ecco l'utilizzo della memoria segnalato richiesto ogni pochi secondi mentre Firefox rimane inattivo.

Immagine

Immagine

Notare il calo dei valori Working Set e Memory. Questo è il pulitore della memoria che recupera la memoria di sistema.

Immagine

Immagine

Immagine

Dopo essere salito per un po ', puoi vedere un'altra goccia.

Immagine

Immagine

Immagine

Schiuma. Sciacquare. Ripetere.

Inoltre, se non fai altro che cambiare scheda e scorrere su e giù le pagine caricate, puoi vedere i numeri fluttuare un po 'più drasticamente, come spiegato di seguito.

Interpretazione dei risultati

Quando lo guardi per la prima volta, potresti pensare, ehi, questo funziona alla grande. Ma dai un'occhiata alla colonna Commit Size e puoi vedere che questo valore non cambia mai veramente. In effetti, aumenta quando si avvia il componente aggiuntivo di pulizia della memoria.

Ricorda che la colonna Dimensioni commit indica la quantità effettiva di memoria (fisica + virtuale) di cui Windows ha bisogno per eseguire la rispettiva applicazione. Quindi, nel nostro esempio, ~ 120 MB è riservato e attivo sul sistema appositamente per Firefox e risiede nella memoria fisica non utilizzata e / o nel file di paging del sistema. Ricordare inoltre che se è necessario utilizzare il file di paging, si ha un notevole impatto sulle prestazioni perché la memoria virtuale deve essere scritta e letta dal disco rigido che è significativamente più lenta della memoria fisica.

Quindi essenzialmente il pulitore della memoria sta spostando la memoria fisica attiva nella memoria virtuale (perché la memoria viene recuperata deve andare da qualche parte). Quando ciò accade, Firefox non ha più la memoria necessaria per funzionare attivamente, quindi deve chiedere a Windows di spostare i rispettivi dati dalla memoria virtuale alla memoria fisica. E in giro andiamo …

Nella migliore delle ipotesi, questo processo non fa nulla di utile e, nella peggiore delle ipotesi, causa un'enorme quantità di errori di pagina non necessari perché, ancora una volta, se Windows deve mettere in gioco il file di pagina, si verificherà un notevole calo delle prestazioni. Questo può essere particolarmente vero nel caso di sistemi che non dispongono di molta memoria fisica (dove praticamente tutta la memoria virtuale è contenuta in un file di paging), il che è ironico perché si tratta di sistemi per cui è stato “progettato” un pulitore di memoria.

La morale di tutta questa storia è abbastanza semplice, i pulitori di memoria non fanno altro che cambiare numero. Ogni sistema operativo saprà come gestire la memoria in modo appropriato, quindi lascia che facciano le loro cose.

Gestire l'utilizzo della memoria di Firefox

Dato che abbiamo dimostrato che i componenti aggiuntivi per la pulizia della memoria non fanno davvero nulla di utile, cosa puoi fare per la grande quantità di memoria utilizzata da Firefox? Ecco alcuni suggerimenti:

  • Rimuovi i componenti aggiuntivi che non ti servono (specialmente quelli di pulizia della memoria).
  • Riduci al minimo il numero di schede che hai aperto.
  • Chiudi periodicamente Firefox e riavvialo.
  • Aggiungi più memoria al tuo sistema.
  • Non ti preoccupare.

Memory Fox Next Componente aggiuntivo per Firefox

Articoli correlati

Ultimi articoli