¿Funcionan realmente los limpiadores de memoria de Firefox?

imagen

No es ningún secreto que Firefox puede consumir bastante memoria del sistema durante el uso normal. Si bien la cantidad de pestañas que tiene abiertas y los complementos instalados ciertamente contribuyen, incluso una instalación lista para usar usada de manera conservadora puede reportar bastante uso de memoria.

Esto ha provocado que aparezcan algunos complementos de Firefox que pretenden liberar memoria que el navegador ya no necesita, pero ¿funcionan realmente?

Una descripción general de dos minutos sobre cómo Windows maneja la memoria

imagen

Antes de sumergirnos en el examen de un limpiador de memoria, es importante comprender un poco la forma en que Windows maneja la memoria. Esto será importante para que podamos interpretar los resultados de nuestro experimento.

No se preocupe, cubriremos esto a un nivel muy alto para que no tenga que ser un mega-geek para seguirlo.

Como advertencia rápida, este es un resumen extremadamente breve de los conceptos básicos de la administración de memoria de Windows. De ninguna manera esto debe considerarse autorizado o definitivo, ya que solo se explica al nivel aplicable al tema de este artículo.

Windows es lo suficientemente inteligente como para saber que la memoria física no utilizada es memoria desperdiciada, por lo que carga todo lo que necesita y cree que necesitará en la memoria. Sin embargo, solo lo que su sistema realmente necesita (tanto Windows como aplicaciones) y está usando activamente en el momento actual se informa como memoria física usada. El resto (lo que Windows cree que necesitará) reside en lo que se llama memoria virtual.

La memoria virtual son esencialmente los datos que el sistema operativo no requiere activamente, pero que están listos para cargarse en la memoria activa en cualquier momento. Puede calcular de manera muy cruda la cantidad de memoria virtual que tiene su sistema en cualquier momento usando esta fórmula:

Memoria virtual = (Memoria física total – Memoria física utilizada / activa) + Tamaño máximo de archivo de página del sistema

Entonces, suponga que tiene un sistema con 4 GB de memoria física y un archivo de paginación máximo de 6 GB. Luego, inicia Windows y abre algunas aplicaciones (Outlook, Firefox, etc.) y Windows informa que se están utilizando 2.5 GB de memoria física. Esto significa que tiene 1,5 GB de memoria física «no utilizada» y un archivo de paginación de 6 GB para un total de 7,5 GB de memoria virtual disponible.

Recuerde, el sistema operativo es lo suficientemente inteligente como para saber que la memoria física no utilizada es memoria desperdiciada, por lo que llenará el 1,5 restante de la memoria física con lo que anticipa que necesitará para que pueda acceder a ella a pedido casi instantáneamente. Esto puede ser cualquier cosa, desde datos de programa en segundo plano minimizados hasta funciones comunes del sistema operativo.

Entonces, ¿qué sucede cuando Windows se queda sin memoria física para usar como memoria virtual? Escribe estos datos en el archivo de página del sistema, que es un archivo enorme (en nuestro caso de 6 GB) en su disco duro. Si bien esto permite que el sistema operativo almacene prácticamente cualquier dato que necesite mantener en la memoria, escribir y recuperar (también conocido como un error de página) esta información hacia / desde el disco duro es un orden de magnitud más lento que acceder a él desde la memoria física. Por eso, cuanta más memoria física tenga, más rápido podrá ejecutar su sistema. Cuanto menos utilice su sistema su archivo de paginación, más rápido funcionará.

Monitoreo del uso de memoria de Firefox

Para nuestra investigación, simplemente usaremos el Administrador de tareas de Windows. Seguiremos las siguientes columnas ( las descripciones se definen en la página de Microsoft ):

  • Conjunto de trabajo = Cantidad de memoria en el conjunto de trabajo privado más la cantidad de memoria que utiliza el proceso que puede ser compartida por otros procesos.
  • Conjunto de trabajo máximo = Cantidad máxima de memoria del conjunto de trabajo utilizada por el proceso.
  • Memoria (conjunto de trabajo privado) = subconjunto del conjunto de trabajo que describe específicamente la cantidad de memoria que utiliza un proceso que no puede ser compartido por otros procesos.
  • Tamaño de confirmación = Cantidad de memoria virtual que está reservada para ser utilizada por un proceso.

imagen

Usaremos una instalación lista para usar de Firefox 4.0.1 con solo el complemento Memory Fox cargado. En Firefox, tendremos las siguientes pestañas abiertas y no haremos nada más que desplazarnos hacia arriba y hacia abajo por las páginas cargadas.

imagen

Después de esperar unos momentos a que todo termine de cargarse, el Administrador de tareas de Windows informa lo siguiente para Firefox.

imagen

Ahora, cuando iniciamos el complemento Memory Fox, observe la caída dramática en la cantidad de uso de memoria informado.

imagen

También tenga en cuenta que este complemento inicia un nuevo proceso que es el que maneja las funciones de memoria.

imagen

Dejando Firefox inactivo y observando los valores de Working Set y Memory, puede ver que hay una lucha constante entre Firefox que necesita memoria física activa y el complemento de limpieza de memoria que recupera esta memoria.

Aquí está el uso de memoria informado que se toma cada pocos segundos mientras Firefox se deja inactivo.

imagen

imagen

Note la caída en los valores de Working Set y Memory. Este es el limpiador de memoria que recupera la memoria del sistema.

imagen

imagen

imagen

Después de subir un poco, puedes ver otra gota.

imagen

imagen

imagen

Espuma. Enjuague. Repetir.

Además, si no hace nada más que cambiar de pestaña y desplazarse hacia arriba y hacia abajo por las páginas cargadas, puede ver que los números fluctúan un poco más drásticamente, lo que se explica a continuación.

Interpretación de los resultados

Cuando lo miras por primera vez, pensarías, oye, esto está funcionando muy bien. Pero eche un vistazo a la columna Commit Size y verá que este valor nunca cambia realmente. De hecho, aumenta una vez que inicia el complemento de limpieza de memoria.

Recuerde, la columna Commit Size informa la cantidad real de memoria (física + virtual) que Windows necesita para ejecutar la aplicación correspondiente. Entonces, en nuestro ejemplo, ~ 120 MB están reservados y activos en el sistema específicamente para Firefox y residen en la memoria física no utilizada y / o en el archivo de página del sistema. Recuerde también que si es necesario utilizar el archivo de paginación, hay un impacto notable en el rendimiento porque la memoria virtual debe escribirse y leerse desde el disco duro, que es significativamente más lento que la memoria física.

Entonces, esencialmente, el limpiador de memoria está moviendo la memoria física activa a la memoria virtual (porque la memoria se recupera tiene que ir a algún lado). Cuando esto sucede, Firefox ya no tiene la memoria que necesita para funcionar activamente disponible, por lo que tiene que pedirle a Windows que mueva los datos respectivos que necesita de la memoria virtual a la memoria física. Y damos vueltas y vueltas …

En el mejor de los casos, este proceso no hace nada útil y, en el peor de los casos, provoca una gran cantidad de errores de página innecesarios porque, de nuevo, si Windows tiene que poner el archivo de página en juego, se producirá un notable impacto en el rendimiento. Este puede ser especialmente el caso en sistemas que no tienen mucha memoria física (donde prácticamente toda la memoria virtual se guarda en un archivo de página), lo cual es irónico porque estos son los sistemas para los que se “diseñó” un limpiador de memoria.

La moraleja de toda esta historia es muy simple, los limpiadores de memoria no hacen más que cambiar los números. Cualquier sistema operativo sabrá cómo manejar la memoria de manera adecuada, así que déjelos hacer lo suyo.

Administrar el uso de memoria de Firefox

Dado que hemos demostrado que los complementos de limpieza de memoria realmente no hacen nada útil, ¿qué puede hacer con la gran cantidad de memoria que usa Firefox? Aqui hay algunas sugerencias:

  • Elimine los complementos que no necesita (especialmente los de limpieza de memoria).
  • Mantenga el número de pestañas que tiene abiertas al mínimo.
  • Cierre Firefox periódicamente y reinícielo.
  • Agregue más memoria a su sistema.
  • No se preocupe por eso.

Complemento Memory Fox Next para Firefox