Escolar Documentos
Profissional Documentos
Cultura Documentos
De:
Joaquim Júnior
Tete
setembro de 21
Gerência de memória Em Java
Em Java, é possível desenvolver aplicações programando em alto nível sem se
preocupar com questões como alocação e liberação de memória, que são realizadas
automaticamente pela máquina virtual usando algoritmos. Um programador Java pode
desenvolver aplicações preocupando‐se apenas com a lógica do programa. Como tudo o
que é feito automaticamente, as soluções foram construídas para os casos mais comuns,
mais genéricos. Todas as máquinas virtuais modernas buscam adaptar‐se o melhor
possível ao ambiente onde suas aplicações irão executar, porém e se seu ambiente for
atípico? Se sua aplicação for gigante, usar muita memória, mantiver muitos objetos
vivos, ou realizar alguma computação incomum, a configuração default da máquina
virtual pode revelar‐se inadequada.
A maior parte dos algoritmos de coleta de lixo, por exemplo, são otimizados para
situações típicas, onde as aplicações ou têm uma vida curta ou contam com uma
distribuição previsível de objetos duradouros. O mesmo ocorre com a distribuição de
memória que influencia a alocação eficiente. A maior parte das aplicações irão
funcionar satisfatoriamente nas máquinas virtuais mais populares sem requerer nenhum
ajuste sequer, porém outras aplicações podem se beneficiar de ajustes para melhorar sua
performance, escalabilidade, segurança, consumo de memória. Os algoritmos de
gerência de memória mudam de uma versão para outra. Assim, cada vez mais é
importante que o administrador do sistema tenha conhecimentos sobre a arquitetura das
máquinas virtuais e algoritmos de coleta de lixo.
Anatomia da JVM
A máquina virtual Java (JVM) é uma máquina imaginária implementada como uma
aplicação de software. Ela executa um código de máquina portável (chamado de Java
bytecode) armazenado em um formato de arquivo chamado de class file format (formato
de arquivo class). Um arquivo em formato class geralmente é gerado como resultado de
uma compilação de código‐fonte Java, como mostrado na figura.
1
Processo de construção de aplicações em Java: código‐fonte em Java é compilado em
linguagem de máquina virtual (arquivo .class) que é lido pelo ambiente de execução
(máquina virtual).
2
O heap
javap –c nome.da.Classe
A sintaxe é
3
Referências bibliográficas