Administración de memoria de dispositivos en .NET Compact Framework
Actualización: noviembre 2007
Una importante propiedad de .NET Compact Framework es la eficiente utilización que hace de los recursos, en especial de la RAM volátil. No es necesario que los dispositivos tengan unidades de administración de memoria (MMU) de hardware ni memoria virtual del sistema operativo.
Tamaño de almacenamiento de .NET Compact Framework
En .NET Compact Framework versión 3.5, consulte la sección en la que se describe la instalación del archivo CAB. .NET Compact Framework versión 3.5 aún no está disponible en ROM.
En .NET Compact Framework versión 2.0, el tamaño de almacenamiento es el siguiente:
- 5,5 MB (ROM), sin comprimir, en Windows Mobile 5.0.
Nota: |
---|
La compresión del almacenamiento persistente ha dejado de realizarse a partir de Windows Mobile 5.0. |
En .NET Compact Framework versión 1.0, el tamaño de almacenamiento es el siguiente:
1,55 MB (ROM), comprimido, en Pocket PC 2000 y 2002.
1,35MB (ROM), comprimido, en Windows Mobile 2003 para Pocket PC y Windows Mobile 2003 para Smartphone.
Requisitos de ejecución de RAM
- 0,5 MB+ (depende de la aplicación)
Tamaños de la aplicación típicos:
- 5 - 100 KB
Instalación de archivos CAB
Durante la instalación de .NET Compact Framework 2.0 Service Pack 1 y versiones posteriores, se solicita al usuario que se realice la instalación en el dispositivo o en una tarjeta de almacenamiento, si está presente. Si se opta por la instalación en la tarjeta de almacenamiento, la memoria caché de ensamblados global se coloca en una tarjeta de almacenamiento y los archivos de Common Language Runtime (CLR) se sitúan en el directorio \Windows. En .NET Compact Framework versión 3.5, la memoria caché de ensamblados global requiere aproximadamente 5,2 MB de espacio, mientras que CLR necesita 1,3 MB.
El rendimiento de .NET Compact Framework varía durante la instalación de los archivos CAB en función de si la implementación de memoria se realiza en hardware o en software. Para algunos dispositivos, se obtiene un mejor rendimiento al instalar la caché de ensamblados global en una tarjeta de almacenamiento.
Uso de la memoria
.NET Compact Framework está diseñado para tener una eficiencia óptima en sistemas que tienen las características siguientes:
Alimentados por baterías.
Aproximadamente de 5 a 10 veces la capacidad de la memoria Flash o el sistema de archivos en RAM para almacenar .NET Compact Framework y sus aplicaciones en la RAM dinámica (DRAM).
Un espacio de trabajo comprendido entre 128 KB y 1 MB en DRAM.
Una unidad de disco duro opcional.
.NET Compact Framework utiliza la memoria del sistema disponible cuidadosamente. No se realiza un acceso a la RAM hasta que se ejecuta una aplicación. Además, .NET Compact Framework libera la RAM al finalizar los programas. No se requiere que el sistema operativo nativo tenga sus propias funciones de protección de la memoria. Siempre se produce una excepción cuando se obtiene acceso a memoria que no tiene propietario.
Si la memoria es escasa, .NET Compact Framework adopta una estrategia agresiva de liberación de las estructuras de datos internos que no son necesarias para el código que se está ejecutando. Por lo tanto, puede seguir ejecutándose el programa, incluso en situaciones de escasez de memoria. Si la aplicación requiere más memoria de la que tiene a su disposición, .NET Compact Framework la cierra limpiamente y libera todos los recursos subyacentes. El propio .NET Compact Framework no debería causar errores a causa de memoria insuficiente.
El host de dominio de aplicación inicia aplicaciones de .NET Compact Framework y Common Language Runtime. Las aplicaciones de .NET Compact Framework utilizan el espacio del código y el espacio de datos estáticos y dinámicos de la misma manera que las aplicaciones nativas. Mientras no se ejecutan aplicaciones de .NET Compact Framework, no se ocupa más memoria RAM que la del host del dominio de aplicación, y se utiliza una pequeña cantidad de datos estáticos para Common Language Runtime. Windows CE .NET crea un host del dominio de aplicación cuando se inicia una aplicación de .NET Compact Framework.
Las aplicaciones de .NET Compact Framework están empaquetadas en archivos .exe y .dll, que pueden almacenarse en un sistema de archivos de sólo lectura o de lectura/escritura en la memoria flash (o en la ROM para sólo lectura). El cargador de clases de Common Language Runtime puede leer estos archivos en bloques directamente direccionables sin crear una copia en la memoria y sin necesidad de una unidad de administración de la memoria para crear una vista del archivo asignada en memoria.
Se anima a los desarrolladores a probar sus aplicaciones en varios dispositivos, para comprender mejor las variaciones de rendimiento específicas de cada dispositivo.
Almacenamiento en la RAM
La memoria de acceso aleatorio (RAM) se utiliza para almacenar estructuras de datos dinámicas y código compilado JIT. .NET Compact Framework utiliza la RAM libre, hasta un límite especificado por el dispositivo, para almacenar en memoria caché el código generado y las estructuras de datos, y posteriormente libera la memoria cuando corresponde.
El Common Language Runtime utiliza una técnica de pitching de código para liberar bloques de código compilado JIT en tiempo de ejecución cuando no hay suficiente memoria. Esto permite ejecutar programas más grandes en sistemas con limitaciones de RAM con una pérdida de rendimiento mínima.
Almacenamiento en ROM
El código nativo que compone el Common Language Runtime puede residir en la memoria de sólo lectura (ROM) o en un sistema de archivos de RAM. .NET Compact Framework usa el espacio libre en la memoria ROM, Flash o el espacio del disco para permitir que las aplicaciones sigan ejecutándose, con menor rendimiento, en situaciones de escasez de memoria.
Los archivos que contienen instrucciones del lenguaje intermedio de Microsoft (MSIL) y metadatos para bibliotecas de clases se almacenan en un sistema de archivos en ROM o en RAM. Las bibliotecas de clases pueden descargarse en un sistema de archivos de lectura/escritura como parte del proceso de instalación de una aplicación descargable.
Vea también
Tareas
Conceptos
Administración de memoria automática
Otros recursos
Información general sobre la arquitectura de .NET Compact Framework