Domingo, 15 de Enero de 2006
Evitar cuelgues en las nuevas Palm con NVFS (II)
Toda la explicación que se hizo sobre como está organizada la memoria interna de las Palm anteriores, y las que traen el nuevo sistena NVFS, intentaba explicar la existencia de la DbCache.
Resumiendo, la DbCache es la zona de memoria RAM en la que se copian los archivos de una aplicación cada vez que ejecutamos una, ya que los archivos ejecutables no pueden funcionar directamente en la memoria flash que es la utilizada para almacenamiento en las Palm con NVFS. Si no te has enterado de nada, es porque has intentado saltarte la primera parte de este post. La conclusión es que, por mucha memoria que tenga una Palm, los datos que utilice un programa no pueden ocupar más del espacio libre en la DbCache. ¿Un ejemplo? Tienes una Tungsten E2, con 10Mb libres en la memoria de almacenamiento, y 4Mb en el Dynamic Heap, pero tu DbCache sólo tiene 2Mb libres. Cargas un programa que consume 3Mb. Resultado: tu E2 se cuelga. Así de sencillo.
Claro está, nunca se debería llegar a esta situación. Mi E2 nada más hacer un soft reset tiene unos 5Mb de DbCache libres. Ejecuto un programa grande y bajan a 2Mb, pero en cuanto salga de ese programa, PalmOS libera esa memoria y vuelvo a tener 5Mb, para la siguiente aplicación. ¿Pasa esto? No realmente. PalmOS no libera DbCache hasta que no es necesario, para evitar ralentizaciones. Cuál es el problema: que esta limpieza de la DbCache no siempre funciona como debería.
Las Palm más inestables eran las primeras que salieron con el NVFS: el treo 650 y la Tungsten T5. Pero ya hace tiempo que en la página de Palm hay actualizaciones que mejoran estos puntos, por lo que si aún no habéis actualizado vuestros equipos no se a qué esperais. Ahora mismo con el uso normal no suele haber problemas. Pero cuando por ejemplo abrimos un archivo grande, con muchas imágenes, dentro de Plucker, o cargamos un juego grande, por ejemplo los de GameboyColor en el LJP, o el Día del Tentáculo en el ScummVM, si no tenemos 2 o 3Mb libres en la DbCache es seguro que se nos colgará la Palm.
¿Y qué podemos hacer para solucionar esto? Afortunadamente Hiroaki Imazeki creó DbCacheTool. No sé si la página del programa os ayudará mucho, ya que está en japonés, pero he recopilado suficiente información sobre este programa en los meses que llevo investigando el tema. El program podéis bajarlo pinchando en el enlace de abajo del todo de la página. Esta aplicación monitoriza el nivel de DbCache libre que hay en cada momento, y podemos configurarla para que, cuando este nivel baje de un cierto umbral que decidamos, por algún método que desconozco (se supone que puede cargar un programa muy grande poco a poco y luego descargarlo de memoria) libere toda la DbCache que pueda. El proceso tarda unos 15 segundos.

La configuración de DbCacheTool
Una vez instalado este programita, ya podemos ejecutarlo. Consta de una sóla ventana que es donde se configura todo. Paso a explicar qué es cada cosa:
- Cache Size es el tamaño de la DbCache de nuestra Palm, mientras que Free indica cuanta de esta memoria está libre actualmente. Pero MaxAlloc es el tamaño del bloque contíguo más grande de esta memoria libre. Y es que un programa grande no podrá usar más que esta cantidad, porque no puede cargarse en varios huecos. Así que este valor, que es el más pequeño de los tres, es el que más nos interesa.
- Clear Type nos da a elegir qué método usará para liberar memoria. Elegiremos entre DB (que es el método que explico aquí) y Sync que la verdad no he conseguido saber que es, aunque se supone que sería liberar la DbCache durante los Hotsync.
- Auto Clear significa si queremos que el programa haga algo o no. Es el interruptor general.
- En Apps... podremos definir configuraciones para un solo programa en concreto, por ejemplo para programas que requieren mucha RAM.
- Y ahora tenemos que decidir cuando chequear la DbCache:
- App Stop: cuando salgamos de una aplicación.
- Ctrl Tap: dentro de una aplicación, cada vez que pulsemos un botón.
- First form Open: cuando abrimos una aplicación. Esta opción sólo está disponible para la configuración de un programa en concreto.
- Event dequeue: para la configuración de un programa en cocnreto, activa o desactiva que DbCache haga algo o no.
- Ask at soft reset nos da la opción de que el programa pregunte si se arranca o no al hacer soft reset, para evitar que si da problemas no nos deje arrancar la Palm. Clear at soft reset haría que se ejecute el programa cada vez que hacemos un reset, para así empezar con la DbCache lo más vacía posible.
- Por último, free significa a partir de que valor (en Mb), si la DbCache tiene menos espacio libre que el indicado, intentará liberar más; max es lo mismo, pero relativo al tamaño del bloque de memoria libre contigua más grande.
Esto es lo que significa cada cosa pero ahora ¿Qué valores dar? Os puedo decir que normalmente con 2Mb de DbCache libre casi todos los programas van a cargar bien. Algo que he comprobado es que, aunque al ejecutarse libera mucha DbCache, lo que no aumenta es el tamaño del hueco libre más grande, que además es el que realmente nos limita. Así que si se hace muy pequeño habrá que resetear la Palm para liberar esta memoria otra vez. El DbCacheTool además del programa en sí, trae un Desktop Assistant (DA) que es una especie de Hack para PalmOS 5. Si os instaláis el DALauncher por ejemplo, podréis cargarle este DA, y en la barra de comandos que sale cuando hacéis un trazo diagonal (típico para copiar, pegar, etc.), os aparecerá la opción de consultar el estado de la DbCache, lo cual es muy cómodo.
Valores que tengo puestos actualmente: después de muchas pruebas, lo he dejado como veis en la captura. 4Mb de total y 0Mb de max. ¿Por quÚ? el max me da igual, porque cuando sea muy pequeño no lo voy a poder aumentar, el progama no lo consigue. Así que me fijo en el free, el valor total, y si baja de 4Mb, el max no bajará de unos 3Mb, porque suelen ir los dos alores a la par. Es difícil explicar como funciona esto, hay que instalarlo y ver como baja la DbCache según los programas, y decidir el valor que más nos conviene. Si ponemos un umbral muy bajo, podemos llenar la DbCache con un programa grande y colgar la Palm. Si ponemos un umbral muy grande, el programa se ejecutará muy a menudo y es una molestia.
Como veis esta solución es de compromiso, pero puede llegar a funcionar muy bien. Necesita un proceso de prueba y error, pero con esto y otro programa que voy a comentar en el próximo post podemos tener una Palm sólida como una roca. Sé que es mucho para digerir, pero os recomiendo que lo leais con calma, porque funciona.
Posts en esta serie:
- Evitar cuelgues en las nuevas Palm con NVFS (I)
- Evitar cuelgues en las nuevas Palm con NVFS (II)
- Evitar cuelgues en las nuevas Palm con NVFS (y III)
Por: Marcos González Troyas en Trucos Palm
RSS comentarios |
Imprimir este post
Artículos relacionados
Suscríbete para estar al corriente de las novedades en este blog












Mayo 10th, 2006 at 10:09
Un poquillo de humor, je je. Si no sabemos japonés para saber ver la documentación oficial del autor, siempre nos podemos leer tu artículo Usando la Palm para estudiar japonés, je je.
Mayo 10th, 2006 at 10:46
Sí, ya tenemos una razón más en la lista
Junio 14th, 2006 at 18:55
Por fin estoy probando esto… mas noticias a las 10:00 :p
Agosto 16th, 2006 at 8:44
Amigo Marcos, tras instalar AvantGo, y alternar con VersaMail, había comenzado a sufrir soft resets, así que decidí cargar DBcache Tool, y en verdad que funciona. Lo pongo ON solamente para leer correos y noticias y se arranca cuando es necesario, limpiando la DBcache x completo al salir de estas aplicaciones. Lo que tengo para decirte es que en mi T|X demora algo más de 15 seg., aprox. 25 seg., pero sí que funciona.
Pregunta: Lo he dejado tal cual tu captura; el Ask at softreset, lo tienes destildado igual que en la captura?
Has modificado algo en este tiempo de utilizarlo?
Saludos y gracias.
PD: Aún no me le atrevo al UNcache de D.G
Agosto 16th, 2006 at 12:52
El “Ask at sofreset” no lo he activado, sin embargo si que lo he hecho con el “Clear at sofreset”, combinado con que todas las noches tengo programado un softreset a las 4.00, después de hacer una copia de seguridad con NVBackup. Así todas las mañanas tengo la DbCache defragmentada y lista para usar.
La verdad es que hace semanas que no llega a ejecutarse el DbCacheTool, ya que si no uso programas que consuman tanta RAM como el LJP o que tengan mal comportamiento, suele liberarse la DbCache usada al salir de la aplicación. Por eso te recomendaría sustituor Avantgo por Sunrise.
Al final lo más importante es utilizar programas ligeros, que es para lo que está pensada una Palm, y evitar monstruos de varios megas. Cuando hace falta ejecutar uno de esos que necesita toda la DbCache, hacemos un soft reset primero y arreglado.
Agosto 16th, 2006 at 12:58
Por Uncache no te preocupes. Lo peor que puede pasar es que algún programa quede sin activar las alarmas (preocúpate de añadir a la lista al menos los cuatro PIM principales y el reloj). En caso de que no te convenza, lo desactivas y todo vuelve a cargarse al inicio, como antes. Es imposible producir algún desperfecto irreversible.
Septiembre 6th, 2006 at 9:31
He decidido probar la aplicación, y han pasado creo que 22 horas desde que la probé, y ya me ha causado varios soft-resets, en los cuales me restablece al launcher normal (parece que no se lleva muy bien con el Zlauncher), pienso amanecer haciendo pruebas para ver si logro que no me soft-resetee la Lifedrive, por lo mientras me estoy preparando para hacerle hard reset a mi palm, e ir probando aplicación por aplicación de las que tenía… :S
Saludos
Septiembre 6th, 2006 at 9:37
El Zlauncher es un devorador de recursos. Si te fijas, al resetear la PDA quedan unos Mb menos de DbCache libres que usando el launcher normal.
Otra cosa que ayuda es programar un softreset diario por la noche. Así cada mañana te encuentras la PDA al máximo de memoria.
Octubre 14th, 2006 at 5:02
Buenas,
Muchas gracias en primer lugar por todo lo que me ha ayudado tu pagina.
Tengo una preugnta,
He instalado el Db Chache y…en teoria el Max alloc deberia ser muy grande no?? el mio es, aora, de 3703960 y free: 3716664
cuando en el db pongo on significa q ya lo hace automatico no?
tengo el nvback up con el reset automatico aunke realemten no se para q sirve muy bien. tengo q acer algo mas o tener algun programa mas para intentar evitar esos resets y esos cualgues…??
Muchas gracias.
Octubre 14th, 2006 at 10:56
Si lo tienes en ON, cuando los valores de Free o Max llegan a ser menores que los que configuras abajo, el programa se activa automáticamente.
Los resets hacen que la Palm se reinicie, arrancando con toda la DbCache libre, que luego los programas van ocupando otra vez poco a poco.
Marzo 7th, 2007 at 4:23
Buenas!
Lamento revivir a esta altura un tema que data desde hace un tiempo atrás, pero creo que por su importancia lo amerita. Desde hace poco estoy comenzando a tener “Fatal exceptions” inesperados en mi Tungsten E2 con ciertos programas (me ha sucedido con: AeroPlayer, Documents To Go 9 y RepliGo). He leído muchísimo (tanto en inglés como español) sobre DBCacheTool y mis preguntas son las siguientes:
¿Es realmente necesario utilizar DBCacheTool? (me da un poco de miedo instalarlo y manipular algo tan delicado como la memoria DBCache)
¿Funciona bien una E2 los valores comentados en el artículo?
Desde ya, les agradesco la ayuda y el tiempo!
Carlos.
Marzo 7th, 2007 at 10:08
Nunca es tarde para hablar de ningún tema, Carlos.
El DbCacheTool es muy útil porque intenta liberar memoria cuando hace falta, en vez de dejar que se acabe sin avisarnos y que se cuelguen los programas (que es lo que ocurre por defecto en PalmOS). Otra cosa es que consiga liberar suficiente memoria. Cuando quede poca (es decir, cuando DbCacheTool se ejecuta ya muy frecuentemente), lo más fácil es hacer un reset, sobre todo si el programa a abrir es grande, como los que comentas.
Lo he usado mucho tiempo en mi E2 y no ha dado ningún tipo de problema, yo no me preocuparía por usarlo. Lo peor que puede pasar es que se cuelgue la Palm, pero la reseteas y listo.
Los valores comentados son los que mejor funcionan para mi gusto, y uso una E2, así que deberían ser, si no los óptimos, al menos seguros. Habrá quien prefiera apurar más la memoria, con el riesgo de poder acabarla al cargar un programa muy grande.
Espero haberte ayudado un poco Carlos. Saludos.
Marzo 8th, 2007 at 16:56
Quisiera saber si este programa es necesario tambien para la tungsten E2
Marzo 9th, 2007 at 10:16
Yo al menos lo uso en mi Tungsten E2 y me ha servido de mucho.
Julio 18th, 2007 at 18:47
Hola, ya que se remonto este tema aprovecho para hacer una pregunta… el dbcachetool hace lo mismo que el reset doctor?… es mejor que el reset doctor?.
Saludos
Julio 18th, 2007 at 18:52
Hola Davide.
Sí, en teoría ambos programas hacen lo mismo. Pero luego en la realidad el PrefDoctor nunca me ha conseguido liberar memoria, mientras que el DbCacheTool siempre me ha funcionado. Mi equipo es una Tungsten E2.
No he probado las últimas versiones del PrefDoctor, quizás ahora funcione.
Julio 26th, 2007 at 21:24
Hola Marcos
Estoy muy agradecido por tu aporte en la liberacion de DBCaché he tenido problemas con el mensaje Fatal Exception y el reseteo posterior que se ha hecho muy seguido en mi Palm T5, yo sospecho que mi problema radica en los programas de Skyscape que utilizo frecuentemente, deben ocupar mucha memoria caché. Mas comentarios cuando lleve mas tiempo de uso de la solucion del problema con el DBCaché Tool.
Saludos
Octubre 3rd, 2007 at 5:41
UN SALUDO MARCOS ESTÁ MUY INTERESANTE TODO LO QUE DICES EN ESTE BLOG.
TENGO UNA PALM TUNGSTEN E2 INSTALÉ EL PROGRAMA DbCacheTool Y LO CONFIGURÉ TAL COMO LO INDICAS EN ESTA PAGINA ENTRO AL PROGRAMA LE PONGO ON Y AL SALIR O AL ABRIR OTRO PROGRAMA DOCS. TO GO ETC. SE QUEDA Y DICE LO SIG. DBCache:cLEAR processing… Y TARDA MUCHO QUE PASA CON ESTE PROSESO TENGO ALGO MAL CONFIGURADO?.
SALUDOS A TODOS.
MADRIGALSON
Octubre 3rd, 2007 at 10:22
Hola MADRIGALSON, es normal que tarde tanto en liberar memoria, el programa funciona así.
Si te lo hace muy a menudo entonces estás usando programas que consumen mucha memoria, o tienes alguno en segundo plano muy grande, por ejemplo ZLauncher.
Para reducir el número de veces que se ejecuta el DbCacheTool al mínimo, yo configuro la Palm para que se resetee todas las noches, así todas las mañanas la tengo con el máximo de memoria libre.
Marzo 25th, 2008 at 2:02
Hola
cómo desinstalo AVANGO de mi palm o resetearla por completo es que lo he instalado pero mal y ahora me dice que hay un error grave
gracias
Abril 17th, 2008 at 18:09
Hola Ana, lo que tienes que hacer es llamar al soporte tecnico de palm y ellos te diran como quitar todos los programas sin perder tu informacion y luego reinstalar los programas que no te causaban problemas.