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
| Compártelo: |




































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.
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
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
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.
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
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.
a ver si me ayudan,yo lo tengo marcado en ASK y CLEAR con 8mb tanto en max como en free y con las apps LJP y OPERA el ljp funca bien pero usando un rato OPERA me aparece un mensaje “sin memoria” cual seria la configuracion correcta para el OPERA