Carrega e interpreta arquivos .class - Possui JIT (Just in Time compilation) - Possui duas principais áreas de memória: - Heap: memória de instâncias - PermGen (Metaspace): memória de classes, métodos, construtores e estado de classe (estático)
Carrega e interpreta arquivos .dex - Possui JIT (Just in Time) a partir de Android 2.2 - Possui diferentes estruturas de memória: - Heap? PermGen? Method Area?
invés de .class e .jar 2. Diminuir o número de instruções na execução a. register based VM ao invés de stack based VM 3. Compartilhar a inicialização dos processos a. processo de fork da Dalvik (Zygote)
instruções executadas - Evita acesso à memória desnecessariamente - Consome o fluxo de instruções de forma mais eficiente (maior valor semântico por instrução)
Android inicializa um serviço daemon chamado Zygote que é uma instância da DalvikVM “purinha” - Através de uma socket, o Zygote faz um fork de si mesmo e retorna o pid para o ActivityManager
fork copia toda a memória do Zygote para um espaço de memória reservado de forma bem eficiente. - Assim, ao abrir um app ele já possui uma instância da VM “a quente”
cj. 2121 Centro – (21) 2240-2030 São Paulo - Av. Nações Unidas, 11.541 3º andar - Brooklin - (11) 4119-0449 Ajudamos empresas a criar produtos digitais de sucesso