código-fonte Java representa uma linguagem de programação portátil e flexível para o negócio, Web e desenvolvimento de aplicações handheld . Este benefício da portabilidade vem , em grande parte graças à Java Virtual Machine. No entanto, a JVM também representa uma ferramenta que os programadores devem gerenciar e manter , a fim de obter o máximo de aplicações Java. Particularmente , o consumo de memória e alocação de pilha na JVM são detalhes que os programadores fariam bem em considerar. Java Virtual Machine
Todo o código Java é executado em cima do Java Virtual Machine. Código-fonte Java é compilado pela primeira vez em Java " bytecode ", que a JVM executa mediante a conversão do bytecode em comandos de leitura óptica . A fim de executar este processo e permitir a portabilidade de Java que goza , JVM deve imitar um sistema de computador , com a memória e as estruturas de dados , de modo que o código-fonte pode armazenar e recuperar dados e comandos . Uma dessas estruturas de dados importantes é o heap.
A JVM Heap
Em programação de computadores , o código utiliza a memória através de duas estruturas internas diferentes inerentes ao sistema de computação . A " pilha " contém todo o código para execução atualmente funções e comandos , bem como todas as variáveis locais declaradas . A " pilha ", por outro lado , contém os dados de longo prazo que um programa pode alocar para dados , tais como objectos complexos . Desde Java representa uma linguagem de programação totalmente orientada a objetos , a pilha é essencial. No entanto , uma vez que Java é executado na máquina virtual , a própria máquina virtual deve conter um heap. Através dele , os programadores podem declarar e instanciar objetos e variáveis estáticas.
JVM Memória e Física
No entanto, a JVM é um pedaço de software, e como tal, deve residir na RAM física do computador host. Em essência , o heap JVM reside em uma máquina virtual, que por si só é executado na memória de uma máquina e usa estruturas de dados que da máquina (como o seu acervo ) . Por conseguinte , a pilha do JVM é limitada pelas limitações físicas do computador JVM reside. Isto inclui simultaneamente a execução de software e utilitários do sistema . Portanto , o heap JVM tem a restrição adicional de adesão , não só para a memória física, mas também competindo com o uso de memória de outros programas. Isso afeta atributos básicos heap , como o tamanho potencial.
JVM Heap Size
Para gerenciar o tamanho do heap , o programador pode alterar os atributos de tamanho de pilha inicial e máximo de a execução instância da JVM através dos " -Xms " e " -Xmx " bandeiras , respectivamente. Qual o tamanho da pilha pode crescer depende das restrições do sistema operacional e os programas em execução . A regra de ouro é que o tamanho da pilha deve ser grande o suficiente para evitar a troca de dados do heap para o disco rígido . E os tamanhos mínimo e máximo nunca deve ser maior do que a memória disponível no sistema host.