Estoy trabajando en Android, donde la memoria es limitada y no hay una característica de archivo de intercambio. He leído que las personas han implementado la funcionalidad de archivo de intercambio utilizando archivos asignados de memoria en sus aplicaciones, pero no entiendo cómo funcionaría. ¿Alguien sabe?¿Usa un archivo mapeado de memoria como un archivo de intercambio?
Creo que la idea general es que, si mi programa quisiera usar una matriz int que tuviera el tamaño de, digamos 20Mb, podría crear los datos para esta matriz en un archivo de 20Mb y luego usar la función de archivo mapeado de memoria traiga de forma transparente a la memoria las partes del archivo en las que necesito leer y escribir actualmente. El elemento crucial es que, aunque tengo 20Mb de espacio para leer/escribir, solo una pequeña fracción de esto está alguna vez en la memoria a la vez (las aplicaciones de Android están limitadas a ~ 24Mb de memoria).
Preferiría trabajar en Java para esto, pero una solución C también funcionaría.
Editar: Esta memoria asignada truco archivo se ha mencionado aquí, pero no entiendo cómo funcionaría http://grammerjack.blogspot.com/2009/10/gles-quake-port-of-quake-to-android.html
¿El intercambio no es una memoria asignada en el archivo? – ruslik
Android no tiene un intercambio configurado. Debido a la forma en que funcionan las aplicaciones, el sistema operativo puede matar todo lo que no esté en primer plano cuando la memoria baja. Los archivos mapeados en memoria funcionan mejor para datos de solo lectura (las páginas se pueden descartar individualmente), aunque también se puede hacer lectura/escritura compartida para obtener un comportamiento similar al intercambio. – fadden