Sistema Linux Dalvik, gestión de la memoria del montón y introducción al reciclaje

  

El sistema Linux de la máquina virtual Dalvik puede realizar un procesamiento de optimización para Android, y la gestión y el reciclaje de la memoria del montón son un medio importante para optimizar el sistema. Este artículo presentará la administración y el reciclaje de la memoria de almacenamiento dinámico Dalvik en el sistema Linux.

sistema Android se inicia después de

sistema Android comienza, habrá un proceso para crear la primera máquina virtual Dalvik cigoto, sólo se mantiene un montón. Todos los procesos de aplicación que se lanzan más tarde están vinculados al proceso de Zygote y ambos tienen su propia máquina virtual Dalvik. En el proceso de creación de la aplicación, la máquina virtual Dalvik utiliza la política de COW para copiar el espacio de direcciones del proceso Zygote.

Estrategia COW: al principio (cuando no se copia el espacio de direcciones del proceso Zygote), el proceso de la aplicación y el proceso Zygote comparten el mismo montón utilizado para asignar objetos. Cuando un proceso de Zygote o un proceso de aplicación se escribe en el montón, el kernel realiza una operación de copia real, lo que hace que el proceso de Zygote y el proceso de la aplicación tengan su propia copia, que se llama COW. Debido a que la copia consume mucho tiempo, debe evitar copiar o copiar lo menos posible.

Para lograr esto, cuando se crea el primer proceso de aplicación, la parte de la memoria de almacenamiento dinámico que se ha utilizado se divide en una parte, y la memoria de almacenamiento dinámico no utilizada se divide en otra parte. El primero se llama el montón de Zygote, y el segundo se llama el montón activo. Esto simplemente copia los contenidos del montón de zygote al proceso de la aplicación. En el futuro, ya sea un proceso Zygote o un proceso de aplicación, cuando necesitan asignar objetos, todos están en el montón Activo. Esto permite que el montón de Zygote se escriba lo menos posible, lo que reduce la necesidad de realizar operaciones de copia en escritura. Los objetos asignados en el montón de Zygote son principalmente las clases, recursos y objetos que el proceso de Zygote carga durante el proceso de inicio. Esto significa que estas clases, recursos y objetos precargados se pueden compartir a largo plazo en los procesos de Zygote y los procesos de aplicación. Esto reduce el esfuerzo de copiado y reduce los requisitos de memoria.

Al igual que la JVM, la máquina virtual Dalvik también debe ser responsable de administrar los objetos en la memoria del montón. También utiliza el algoritmo de limpieza de marcas, pero los detalles son ligeramente diferentes. Anterior12Página siguiente Total 2 páginas

Copyright © Conocimiento de Windows All Rights Reserved