Acabo de rootear mi teléfono (Android 2.3.6) y particionar la tarjeta sd usando CWM recovery
. Mientras que la partición, me di cuenta de swap size
y mientras buscaba sobre ello, diferentes blogs ( desarrolladores de xda ) recomendó utilizar 0M
como swap size
. ¿Para qué sirve? ¿Por qué se recomienda 0M
?
Respuestas
¿Demasiados anuncios?Las principales razones para no recomendar el intercambio son la inutilidad básica del intercambio para la mayoría de los dispositivos, el rendimiento y la longevidad del dispositivo.
Como menciona Liam, los dispositivos modernos no tienen escasez de RAM (incluso mi viejo y poco potente Wildfire S tiene tanta RAM como mi anterior escritorio .) y que la RAM es gestionada bastante bien por el sistema Android moderno, haciendo que un intercambio sea en gran medida inútil.
Además, aunque la tecnología flash es mucho mejor que los discos de óxido giratorio, sigue siendo varios órdenes de magnitud más lenta que la RAM, por lo que, por motivos de rendimiento, no es recomendable pasar a flash si se puede evitar.
Además, la memoria flash tiene un límite de veces que se puede borrar y reescribir. Aunque este límite de ciclos suele ser de miles o decenas de miles, lo que, combinado con los modernos sistemas de nivelación de desgaste, significa que es poco probable que alcances el límite durante la vida útil del dispositivo, si lo utilizas como memoria de intercambio, con montones y montones de escrituras minúsculas, consumirás esos ciclos innecesariamente y podrías llegar a chocar con esos límites con el tiempo.
El uso de un archivo de intercambio es para ahorrar memoria (RAM) para el almacenamiento (disco duro / tarjeta SD).
La recomendación de 0mb para el tamaño del archivo se debe a que no suele ser necesario. Android se encarga de la gestión de la memoria de una manera diferente a los archivos swap.
Antecedentes:
Un archivo de intercambio se utiliza tradicionalmente para almacenar lo que normalmente está en la memoria en el almacenamiento cuando la memoria es baja. Esto permite volver a la memoria cuando sea necesario.
Cito textualmente Blog Credibilidad Cero
Android, aunque es un Linux bastante típico (pero recortado) bajo las cubiertas, tiene su propio mecanismo para manejar condiciones de memoria baja. Termina la aplicación, pero primero le da la oportunidad de persistir su estado (a través de una serie de callbacks). Por ejemplo, una aplicación de mapas podría persistir una latitud y longitud antes de terminar. Cuando vuelves a acceder a la aplicación, la ubicación se devuelve, por lo que parece que la aplicación se estaba ejecutando todo el tiempo. En realidad, la aplicación se ha reiniciado por completo.
(el subrayado es mío)
Lo anterior describe cómo he visto que las aplicaciones parecen persistir después de cambiar de una tarea a otra.
No es necesario guardar el contenido de la memoria en el almacenamiento, ya que Android se limitará a guardar los datos actuales de la aplicación y finalizarla.
Como las otras respuestas ya cubren la mayoría de los hechos, sólo una pequeña adición: Ya he editado la aplicación Swapper para usuarios Root en Respuesta de Liam como ejemplo. Y Respuesta de Compro01 ya se ha mencionado el peligro de desgastar la memoria flash de tu sdcard. Ahora vamos a juntar ambas cosas:
Al utilizar el Intercambiador para gestionar el intercambio, se recomienda no utilizar una aplicación partición swap sino un archivo swap exactamente por estas razones. Que archivo swap luego se coloca en una ubicación diferente de la memoria flash cada vez que se activa el intercambio, lo que evita tener que escribir/borrar siempre los mismos bloques y por lo tanto ahorra algo más de vida útil para su memoria flash.
Así que comparando ambos:
- Cambiar partición: más rápido, pero también gasta más rápido la memoria flash.
- Intercambiar archivo: un poco más lento, pero no gasta la memoria flash tan rápido
Teniendo esto en cuenta, queda claro por qué a) se recomienda 0M (es decir, sin partición de intercambio), y b) se ofrece una partición de intercambio (para aquellos a los que no les importa comprar tarjetas nuevas, pero quieren un poco de velocidad extra).
Swap es básicamente RAM virtual utilizada por el núcleo de Linux.
Swap en Android se usaba cuando los dispositivos tenían una RAM muy limitada (yo lo usaba con mi LG Optimus GT540), para aumentar la cantidad de RAM disponible para el SO Android.
Android mata las aplicaciones cuando se queda sin memoria - y es muy bueno en hacer esto de manera eficiente, sin embargo, en los dispositivos con poca memoria RAM la gente puede haber visto sus aplicaciones de la pantalla de inicio de ser asesinados, y por lo tanto tienen que esperar un tiempo para llegar a sus pantallas de inicio.
Swap se puede montar a través de una partición o un archivo - principalmente en un dispositivo de almacenamiento externo (o interno). Swap se activa normalmente a través de la llamada Guiones de inicio en el /etc/init.d
carpeta del dispositivo para montar/habilitar swap en el arranque del dispositivo.
Los escritorios Linux utilizan una partición para swap, y se pide al usuario que la cree durante el proceso de instalación.
Un archivo se almacena normalmente en la tarjeta SD o en un soporte de almacenamiento. El archivo swap en Android normalmente es montado (y creado) por una app (ej. Swapper para usuarios Root ).
La mayoría de los dispositivos más nuevos no verán ningún beneficio de usar swap - ya que normalmente tienen tanta RAM como un ordenador de sobremesa (¡mi SGS2 tiene 1GB!), y por lo tanto no se beneficiarían de tener más RAM virtual.
Lamentablemente, el uso de swap puede tener un precio, incluso en dispositivos con poca RAM, ya que el sistema operativo tiene que dedicar tiempo a escribir en la tarjeta SD, que normalmente tendría velocidades de lectura/escritura lentas. Por eso, hoy en día no se usa mucho, a menos que el dispositivo tenga una cantidad obscenamente pequeña de RAM.
Además, el uso de swap puede tener un efecto negativo en la vida de tu dispositivo de memoria, por lo que debe utilizarse con precaución. Si alguien lee debe usar swap (y yo lo desaconsejaría), entonces usa un archivo con una app, ya que varía la ubicación del archivo swap para maximizar la vida de la tarjeta sd.