¿Por qué los teléfonos inteligentes (y las computadoras) disminuyen el rendimiento cuando queda poco espacio de almacenamiento?

Hay dos factores en juego.

Trucos DRAM no tan estúpidos

Cuando tiene un sistema que se está quedando sin almacenamiento DRAM, el sistema tiene que encontrar más memoria o las aplicaciones fallan.

En una PC, usa lo que se ha llamado memoria virtual. Su PC está usando eso ahora, pero si tiene suficiente DRAM, nunca lo nota realmente. VM permite que un programa de computadora básicamente asuma que la memoria existe y se ocupa de la realidad de esa pregunta más adelante. También se usa para ocultar programas entre sí: en la mayoría de los sistemas operativos, cada programa piensa que es el único, en las mismas direcciones de memoria virtual, que cambian de un programa a otro.

VM resuelve la crisis de memoria al asignar la memoria de datos al almacenamiento en disco duro, que por supuesto puede ser 1000 veces más lento que DRAM. Entonces, un programa necesita algo de DRAM, y no queda suficiente … ¿qué hacer? Su aplicación no hace nada: cree que ya tiene esa memoria, pero fue asignada “especulativamente”, digamos. La CPU trató de golpear un trozo de memoria, y no existe. La unidad de administración de memoria en su CPU causa un “fallo de página”, que atrapa al subsistema VM del sistema operativo. Ese sistema mira las páginas de DRAM, encuentra algo que no se ha usado recientemente y lo tira, luego vuelve a asignar esa memoria para que sea la porción que falta que su aplicación necesitaba. La rutina de captura existe, la CPU está recuperando ese trozo de memoria faltante y tiene éxito. Todo es bueno.

Sin embargo, toda esa rutina de trampa, el descarte de páginas viejas y la asignación de otras nuevas, se está ejecutando principalmente a velocidades de disco duro. Si esto sucede raramente, no se da cuenta … puede haber fragmentos de memoria que se asignan pero nunca se ejecutan, código de inicio que se ejecuta solo una vez, etc. Pero si cada tarea comienza a golpear trampas VM, la velocidad general de los sistemas se aleja de Velocidad DRAM y hacia velocidades de HDD. El sistema puede ralentizarse muy, muy notablemente.

Master App Control

En sistemas operativos móviles como Android e iOS, es diferente. Estos sistemas no usan paginación de memoria virtual de esta manera, porque no hay disco, solo una porción relativamente pequeña de memoria flash, al menos originalmente en un chip eMMC que no es particularmente rápido. Cambiar a flash sería una locura lenta y desgastaría esa memoria flash.

A medida que el sistema operativo de su teléfono comienza a quedarse sin memoria, puede ejecutar un “recolector de basura” si tiene una naturaleza altamente dinámica. Puede haber secciones de memoria que “se pierden” por una aplicación y no se liberan cuando se hace con, o mediante una programación diferida. El recolector de basura rastrea el uso de la memoria y desasignará la memoria no utilizada cuando no sea necesario. Esto se hace principalmente de forma incremental en estos días, pero si se hace de una vez, puede provocar una gran pausa en todo el sistema operativo.

Los sistemas operativos móviles tienen la capacidad de cerrar aplicaciones, completamente o solo en pedazos. El sistema operativo puede enviar mensajes a otras aplicaciones para cerrarse, liberando así recursos. Este proceso, por supuesto, lleva tiempo, ya que cada aplicación puede decidir “congelar” sus datos en un formato que permita que la aplicación se “descongele” de nuevo a donde la dejó la próxima vez que se cargue. Todo esto lleva tiempo y energía, por lo que, a diferencia de los sistemas operativos de escritorio, los sistemas operativos móviles mantienen las aplicaciones en la memoria hasta que necesitan ser cerradas por sus recursos. Una de las razones por las que muchas aplicaciones móviles no tienen una opción de “cerrar” o “cerrar”, el sistema operativo puede hacerlo de manera muy limpia.

Almacenamiento de discos y flash

Los sistemas también pueden ralentizarse a medida que se queda sin almacenamiento permanente. Esto generalmente no será tan profundo, pero es lo suficientemente común.

A medida que cualquier volumen de almacenamiento, HDD, SSD, eMMC, etc. comienza a llenarse, el sistema operativo puede tener problemas de rendimiento. El más grande es la fragmentación de volumen. Idealmente, si asigna, por ejemplo, un archivo de 10 MB, ese archivo será una porción contigua de flash o espacio en disco. Pero en un sistema de archivos abarrotado, puede que simplemente no queden 10 MB contiguos en el dispositivo de almacenamiento, incluso si en realidad queda bastante espacio de almacenamiento. La asignación y eliminación repetidas de bloques (generalmente entre 512 bytes y 16K cada una) deja un pequeño bolsillo de bloques libres en todo un disco.

Entonces, cuando llega el momento de asignar almacenamiento, el sistema operativo del disco tarda más en entregar esa solicitud de almacenamiento. Las computadoras son realmente eficientes para hacer cosas grandes, no tan eficientes para hacer cosas pequeñas. Hay una sobrecarga fija para leer una serie contigua de bloques para cualquier unidad de almacenamiento, independientemente del tiempo para leer ese almacenamiento. Entonces, si lee esos 10 MB completos de una sola vez, muy eficiente, no se nota el tiempo de configuración. Pero si esos 10 MB se almacenan en un disco de 2.560 bloques no contiguos en el peor de los casos, ese tiempo de configuración se vuelve significativo.

Por supuesto, es peor con el disco duro, porque además tiene un tiempo de búsqueda para colocar los cabezales de la unidad físicamente sobre los sectores necesarios. En realidad, puede escuchar esto en un disco muy fragmentado, por lo que esta condición se ha denominado “paliza”. Lo mismo puede suceder en un SSD u otro almacenamiento flash, simplemente no lo oye y no hay tiempo de “búsqueda”, pero aún tiene un tiempo de configuración finito por fragmento para leer o escribir esos datos.

Aprovechando todos los recursos

También hay optimizaciones, en RAM o almacenamiento, que un sistema operativo puede usar cuando los recursos son abundantes. Uno grande es el almacenamiento en caché dinámico. Si se trata de datos que se mueven hacia / desde el disco y la RAM, o hacia / desde Internet y el disco, a menudo es una gran victoria para el caché las copias locales de los datos, para leer con anticipación y obtener los datos que puedan ser necesarios, La memoria RAM o el almacenamiento no utilizados no ayudan a su PC, por lo que los sistemas operativos modernos emplean estas cosas: lectura especulativa y almacenamiento en caché.

Una vez que los recursos se agoten, el sistema operativo comenzará automáticamente a eliminar estas optimizaciones. Eso hará que las cosas funcionen más lentamente, y en dispositivos móviles, probablemente también lleve a una vida útil de la batería más corta, ya que los cachés siempre están en la memoria más cerca de la CPU y, por lo tanto, menos energía para acceder a los datos almacenados en caché que los datos originales .

¿Alguna vez tuvo que escribir un ensayo durante un examen? ¿Te dejas llevar y te das cuenta de que te estás quedando sin espacio y es posible que no tengas espacio para tu conclusión?

Si es así, apuesto a que te estresaste, te diste cuenta y que te dejó sin aliento. Mientras comenzaste a acomodarte y exprimirlo todo.

Siempre hay 2 soluciones tan lejos en:

  • pedir más papel
  • Escribe más pequeño y espera tener espacio y dejarlo legible.

Las computadoras utilizan varios tipos de memoria para los 2 tipos principales son: –

  • RAM, funciona bastante rápido y es el espacio de pensamiento de su PC. Al igual que el examen. El recurso de esto es finitamente limitado y puede agotarse.
  • RAM virtual. Esto es mucho más lento que la RAM, ya que utiliza su disco duro físico como papel extra.

Ahora considere lo que sucede si se queda sin RAM y está a punto de quedarse sin RAM virtual cuando el disco duro está lleno. Su PC tiene que comenzar a priorizar lo que puede hacer. También debe comenzar a administrar los datos que está procesando mientras los ordena en un entorno de memoria cada vez más reducido. Lo que se vuelve más lento a medida que intenta abarrotar o cambiar lo que ya no es necesario.

¿Es fácil mantener su habitación organizada cuando está repleta de cajas de cartón, sobras de pizza y latas de cerveza vacías?

No Al igual que su habitación, encuentra las cosas más rápido y lo mantiene limpio más fácilmente si hay espacio y todo está bien dispuesto.

Manténgalo ordenado, deseche la basura.

Menos es más rápido.