Ver Mensaje Individual
  #1  
Viejo 04/04/11, 19:43:49
Array

[xs_avatar]
josebama josebama no está en línea
Usuario veterano
 
Fecha de registro: oct 2009
Localización: Getxo
Mensajes: 776
Modelo de smartphone: Galaxy Nexus
Tu operador: Vodafone
Aumentar la velocidad de lectura de tu microSD (funciona en casi todos los Android con Root)

Antes de nada decir que este hilo lo abro basándome en este otro de XDA: y que también se ha hablado de esto antes en HTCManía, pero como no parece que se le haya dado mucho bombo en este foro, intuyo que será por el desconocimiento de esta utilidad, la pereza de leerlo en inglés etc, asi que he decidido abrir este nuevo hilo para compartir mi experiencia con este mod en el Nexus One, y para para que vosotros pongáis las vuestras.

Introducción

El teléfono, para leer los datos de la microSD utiliza parte de la memoria caché (una memoria muy pequeña y rápida, que se usa como puente). La cantidad de caché que se usa para leer viene definida en el archivo /sys/devices/virtual/bdi/179:0/read_ahead_kb. En Android por defecto viene definido a 128kb, y la verdad es que es un valor muy bajo, esto significa que transfiere los datos de la memoria externa a la RAM en bloques de 128kb, asi que cuanto mayor sea el número, en un principio, mas rápido transferirá los datos.

Esto tampoco es algo mágico, cada tarjeta tiene sus limitaciones de velocidad de transferencia, y por tanto, hay que buscar el valor mas óptimo (según el autor del hilo de XDA, 2048 es lo mas común) para cada tarjeta, porque tampoco se puede reservar una cantidad excesivamente grande en la caché, porque esa memoria reservada, mientras se lee (o tal vez siempre, no se si esta memoria queda reservada siempre, o solo mientras se haga un proceso de lectura/escritura), no puede ser utilizada por otros procesos y teniendo en cuenta que la caché tiene muy poca capacidad, esto puede llegar a pasar factura en el rendimiento de tu dispositivo.


En Android por defecto este valor es 128Kb (no lo he comprobado, pero me fio de lo que dicen), y según la ROM que tengas instalada, este valor puede ser diferente, se han visto ROMs incluso con 4Kb.

Qué hacer (para los perezosos: al final del post pongo enlace a un aplicación que hace esto)

Teniendo acceso root se puede modificar este archivo directamente (con el Root Explorer, por ejemplo), pero solo durará hasta reiniciar el movil, en cada arranque el valor se reestablece al valor por defecto.

Para que los resultados sean permanentes hay que crear un script y meterlo en el init.d, pero como eso es muy engorroso, los chicos de XDA nos han creado unos .zip para que flasheemos:

Si tienes el recovery de ClockWorkMod tienes que modificar el archivo antes citado, descargarte el .zip para el valor que has decidido darle a la cache, flashearlo y reiniciar. Los flasheables te los puedes bajar del hilo de XDA si estás registrado, sino, abajo están unos mirrors en Megaupload.

En caso de tener el recovery de AmonRA, tendrás que modificar el archivo antes citado con el valor que quieres para la caché y descargarte el flasheable que te convenga de aquí o de los mirrors de Megaupload de mas abajo.

Si aun asi eres de los que prefiere crearte tu el script, puedes seguir las instrucciones que hay en el hilo de XDA, no las pongo aquí porque me parece algo demasiado complicado para la mayoría, sobre todo para gente no familiarizada con linux y no creo que la gente vaya a hacerlo.

Mirrors

Flasheables para ClockWorkMod
1024: http://www.megaupload.com/?d=XWATMBNR
2048: http://www.megaupload.com/?d=WMVZW7YZ
3072: http://www.megaupload.com/?d=GN4XXC1G
4096: http://www.megaupload.com/?d=MUMHEP11
128 (por defecto): http://www.megaupload.com/?d=KHAR5EFD

Flasheables para Amon_RA
1024: http://www.megaupload.com/?d=U2JUFH8F
2048: http://www.megaupload.com/?d=OOZMK662
3072: http://www.megaupload.com/?d=86UBJGO5
4096: http://www.megaupload.com/?d=HQFYS0RT
128 (por defecto): http://www.megaupload.com/?d=HGRPVXX5

Mi experiencia

con la aplcación SD tools he medido la velocidad con 128 de caché, 1024, 2048, 3072 y 4096 para ver cual era el que mejor resultado me daba y este ha sido el resultado:

128 de caché: 4.3 mbps de escritura y 33.8 mbps de lectura
1024 de caché: 6.8 mbps de escritura y 64.3 mbps de lectura
2048 de caché: 7.2 mbps de escritura y 68 mbps de lectura
3072 de caché: 7.1 mbps de escritura y 68.6 mbps de lectura
4096 de caché: 7.3 mbps de escritura y 70.8 mbps de lectura

No se yo la veracidad de este programa, pero por lo menos sirve para hacerse una idea de con cual va mejor. Eso si, hay veces que saca resultados muy falsos, asi que por si acaso, recomiendo hacer el test un par de veces para no sacar conclusiones falsas.

Mi microSD es una de 16GB de clase 6 de marca china y como los resultados son bastante parecidos en todos los valores, me pondré 2048, para no reservar demasiada caché, ya que no se si es una reserva permanente o solo temporal, aunque me supongo que temporal, porque si no no creo que se cambiaría el valor dinámicamente.

La verdad es que en la carga de la galería se nota bastante el cambio de velocidad y se agradece, porque siempre me ha desesperado lo que tardaba el Nexus One en cargar los álbumes con muchas fotos.

Aplicación
Hay una aplicación que hace exactamente esto. Modifica los valores para aumentar la caché usada y también deja fijarlo al inicio. Obviamente es mas "óptimo" hacerlo manual porque así no tienes una aplicación extra instalada, pero bueno, creo que merece la pena. Aquí está: http://www.htcmania.com/showthread.php?t=198962

EDIT: Acabo de encontrar esta otra aplicación, que hace lo mismo y es gratuita: https://market.android.com/details?id=com.sdincrease.it

Última edición por josebama Día 06/04/11 a las 18:12:50.
Responder Con Cita
Los siguientes 28 usuarios han agradecido a josebama su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]