2 votos

Hoy he leído que el rendimiento de escritura del flash disminuye con el uso. Soy un usuario intensivo. ¿Debo cambiar mi comportamiento?

Mi teléfono

Tengo un teléfono con gigabytes de memoria flash integrada. Mi teléfono también incluye una ranura física para tarjetas MicroSD. No tengo una tarjeta MicroSD para colocarla en la ranura, y nunca me he molestado en comprar una, pero no me opongo a la idea de comprar una.

Tal vez utilice más la memoria flash de mi teléfono que la mayoría de la gente.

  • Corro una aplicación gratuita de seguimiento del sueño la mayoría de las noches, durante toda la noche. Tiene muchas características. ¿La que más almacenamiento requiere? Graba el sonido durante al menos una parte de cada noche.

  • Yo también tengo instalado Debian Linux en mi teléfono (aunque el teléfono no está rooteado). Inicio Debian cuando lo deseo usando una aplicación llamada GNURoot Debian . Normalmente, Debian Linux se almacena en una unidad de estado sólido (SSD) diseñada para manejar un enorme número de ciclos de escritura, o en un disco duro que también puede manejar numerosos ciclos de escritura, no en un chip de memoria flash de un smartphone.

  • Tengo quizás un centenar de aplicaciones instaladas, y la tienda Google Play actualiza automáticamente algunas de ellas de vez en cuando.

  • Hago un uso intensivo de un juego que fue diseñado para su uso en Windows y Linux, pero que ha sido portado a Android. Cada vez que me muevo entre los pisos del mundo del juego, éste guarda cierta información en el disco. Sospecho que, en la práctica, reescribe al menos parte del archivo de guardado del juego.

El problema

David Cary tiene más de 10.000 puntos de reputación en Electrical Engineering Stack Exchange. En un puesto allí , escribe el Sr. Cary:

La memoria flash tiene tiempos de lectura relativamente rápidos pero tiempos de escritura mucho más largos. Por ejemplo, con una memoria flash serie Numonyx M25P80-VMW6G de 75MHz y 8 Mbit, la lectura de un sector de datos (a 75 MHz) requiere 7 milisegundos, mientras que el borrado y la escritura de nuevos datos en un sector suele ser de 0,6 segundos (máximo 3 segundos).

En otras palabras, la escritura de esta memoria flash suele tardar 85 veces más que la lectura, y en el peor de los casos la escritura de un sector tarda más de 400 veces que la lectura. (Eso sin tener en cuenta las ineficiencias de la actualización parcial de sectores).

Según mi experiencia, el tiempo que se tarda en borrar y reescribir un sector concreto de la flash sigue aumentando con cada ciclo de borrado/reescritura, pero los tiempos de lectura se mantienen constantes.

No sé mucho de hardware, pero vamos a suponer que la experiencia del Sr. Cary también será válida para mi teléfono.

Mi pregunta

No me gusta gastar dinero innecesariamente, y a veces me cuesta mucho esfuerzo elegir un teléfono para comprar. Cuando compro un teléfono, me gusta tratarlo bien y seguir usándolo durante cinco o diez años o más, a menos que se rompa tanto que esto sea absolutamente imposible.

Ciertas operaciones en mi teléfono son molestosamente lentas, como las comprobaciones de actualización automática de software de Debian Linux ( apt-get update ) y otros. No sé si son lentos por el tiempo que se tarda en escribir en flash o por otros motivos.

De todos modos, suponiendo que la cuestión que el Sr. Cary ha planteado más arriba sea un problema real, ¿debería preocuparme por ello? ¿Debería cambiar mi comportamiento debido a ello, por ejemplo, moviendo GNURoot Debian de la memoria flash incorporada del teléfono a una tarjeta MicroSD insertada en la ranura correcta?

Nota

He dejado esta pregunta en gran parte agnóstica para los dispositivos. Esto se debe a que me gustaría aplicar lo que aprenda tanto al dispositivo que tengo como a cualquier otro dispositivo Android que pueda comprar en el futuro.

Relacionado

0 votos

La respuesta aceptada no tiene en cuenta el tamaño del bloque de borrado. Consulte este o este . También se equivoca en el recuento de ciclos de escritura de 1M. Es sólo 10k. Compruebe la sección de resistencia a la escritura en wiki

3voto

mattm Puntos 139

Como usuario, y no como desarrollador, no es un efecto que deba preocuparle. Para operaciones como la desfragmentación del disco o el uso de la memoria flash como memoria virtual, las altas tasas de escritura en el disco pueden desgastar la memoria flash rápidamente. Pero el uso "normal" por parte de un humano no producirá suficientes escrituras como para crear un problema de desgaste.

Tomemos como ejemplo la aplicación del sueño y estimemos cuántas escrituras provocará en un disco con nivel de desgaste. Supongamos que la aplicación recoge audio de 128 kilobits / segundo para almacenarlo sin comprimir y que se ejecuta y recoge audio en todo momento durante 5 años. (128 kilobits / segundo) * (128 bytes / kilobit) * (5 años) * (365 días / año) * (24 horas / día) * (60 minutos / hora) * (60 segundos / minuto) ~= 5,17 * 10^11 bytes. En un disco con nivel de desgaste de 1 GB ~= 10^9 bytes, esto supondrá (5,17 * 10^11) / (10^9) ~= 517 ciclos a lo largo de los 5 años, lo que está muy por debajo de los 100.000 ciclos previstos para la memoria flash actual.

Además, hay que tener en cuenta que actualmente casi todas las unidades SSD están construidas con memoria flash, por lo que no hay una diferencia significativa entre el almacenamiento de tu teléfono Android y el de una unidad SSD de consumo para un ordenador portátil/de sobremesa en cuanto a los problemas de envejecimiento previstos.


EDITAR

Si estás realmente preocupado por esto, yo haría un benchmark del rendimiento de tu almacenamiento. No creo que sea una buena suposición que las operaciones de borrado/escritura tarden 0,6 segundos; tu memoria flash no es la misma que la utilizada en las cifras del ejemplo.

Este evaluación empírica de la memoria flash ofrece cifras reales de degradación. La magnitud del efecto no es tan grande para los ciclos de pocos miles.

0 votos

Por el momento, no se ha subido. Mi pregunta es no sobre la memoria fallo (debido a que la memoria flash tiene un número finito de ciclos de programación-borrado). En cambio, mi pregunta se refiere a la memoria ralentización - sobre la declaración del Sr. Cary de que the time it takes to erase and rewrite a particular sector of flash continues to increase with each erase/rewrite cycle . Pero su pregunta habla de "desgaste de la memoria", que es un término que (en mi limitado conocimiento) se suele utilizar para hablar de cuántos ciclos puede sufrir antes de fallo .

1 votos

¿En qué situación esperas que los tiempos de escritura en la memoria flash de tu dispositivo sean un cuello de botella en el rendimiento?

0 votos

No lo sé. 1) Recientemente, descomprimí un archivo comprimido de 27 MB (el código fuente de un juego, más las dependencias) en GNURoot Debian, y me molestó la cantidad de minutos que tardó. No estoy seguro de si la operación estaba ligada a la CPU o al disco, y no lo comprobé. 2) Supongamos que, incluso en mi dispositivo, borrar y escribir nuevos datos en un sector lleva 0,6 segundos o más. Eso es mucho tiempo. ¿Es posible que algún software de mi dispositivo (aunque no sé qué software) espere a que terminen ciertas operaciones de escritura antes de continuar la operación?

0voto

JonTheNiceGuy Puntos 376

Yo diría que depende de tu hardware. Por ejemplo, se sabe que algunos dispositivos Samsung (por ejemplo, el Note 4) tienen un chip flash eMMC que es propenso a fallar si se escriben demasiados datos durante la vida útil del teléfono. Tuve que reemplazar eMMC (la placa base en la práctica) de mi Samsung S4 Mini LTE debido a que falló después de ser escrito demasiado en el tiempo.

Sin embargo, el hardware de la mayoría de los teléfonos tiene una grabadora de tarjetas SD demasiado lenta para tu caso de uso, incluso si consigues las mejores tarjetas de clase A1 (para más información sobre las tarjetas A1 vs A2 para el uso de Android, consulta ¿Debo adquirir una tarjeta Micro SD con especificaciones A1 o A2 para mi teléfono? ). El mayor problema que tiene es el uso de apt dentro de la instalación de Debian. La página web apt el uso es problemático porque apt se esfuerza por mantener su sistema totalmente funcional incluso en caso de pérdida de energía durante cualquier actualización. Como resultado, es realmente sync feliz y esperará a que el almacenamiento permanente confirme todas las escrituras cada cierto tiempo antes de continuar.

Si puedes aceptar la posibilidad de perder tu entorno Debian por falta de batería, puedes montar tu partición debian noatime,async,nobarrier y su rendimiento debería mejorar.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X