de lixo. O formato da opcao e seus valores sao: -Xgcpolicy:optthruput -Xgcpolicy:optavgpause -Xgcpolicy:gencon |-Xgcpolicy:subpool (somente PPC e zSeries) Tempo de Pausa Quando a tentativa de um aplicativo em criar um objeto nao pode ser atendida imediatamente no espaco disponivel no heap, o coletor de lixo e responsavel pela identificacao de objetos nao referidos (lixo), por exclui-los e retornar o heap para um estado no qual pedidos de alocacao imediatos e subsequentes possam ser atendidos rapidamente. Tais ciclos de coleta de lixo introduzem pausas inesperadas ocasionais na execucao do codigo do aplicativo. Como os aplicativos aumentam de tamanho e complexidade e os heaps tornam-se correspondentemente maiores, esse tempo de pausa da coleta de lixo tende a aumentar de tamanho e importancia. O valor padrao da coleta de lixo, -Xgcpolicy:optthruput, fornece um rendimento alto para aplicativos, mas com o custo das pausas ocasionais, que podem variar de alguns milissegundos ate varios segundos, dependendo do tamanho do heap e da quantidade de lixo. Reducao do Tempo de Pausa A JVM utiliza duas tecnicas para reduzir tempos de pausa: Coleta de lixo simultaneaColeta de lixo com base em geracoes A opcao de linha de comandos -Xgcpolicy:optavgpause solicita o uso da coleta de lixo simultanea para reduzir significativamente o tempo gasto em pausas para coletas de lixo. A Coleta de Lixo Simultanea reduz o tempo de pausa executando algumas atividades de coleta de lixo simultaneamente a execucao normal de programas para minimizar a interrupcao causada pela coleta do heap. A opcao -Xgcpolicy:optavgpause tambem limita o efeito do aumento do tamanho de heap durante a pausa para coleta de lixo. A opcao -Xgcpolicy:optavgpause e mais util para configuracoes que apresentam grandes heaps. Com o tempo de pausa reduzido, voce podera perceber uma certa reducao no rendimento do processamento dos aplicativos. Durante a coleta de lixo simultanea, um tempo significativo e gasto com a identificacao de objetos relativamente resistentes que nao conseguem ser coletados. Se a Coleta de Lixo concentrar-se apenas nos objetos com a maior tendencia de serem reciclaveis, sera possivel reduzir ainda mais os tempos de pausa de alguns aplicativos. A Coleta de Lixo com Base em Geracoes obtem o mesmo resultado dividindo o heap em duas "geracoes", as areas de "desenvolvimento" e "estabilidade". Os objetos sao colocados em uma dessas areas dependendo da duracao. A area de desenvolvimento e a menor e contem objetos mais recentes, enquanto a area de estabilidade e maior e contem objetos mais antigos. Os objetos sao alocados primeiro a area de desenvolvimento; se persistirem por um periodo suficiente, avancarao em algum momento para a area de estabilidade. A Coleta de Lixo com Base em Geracoes depende da curta duracao da maioria dos objetos. Ela reduz os tempos de pausa concentrando-se na tentativa de reivindicar o armazenamento na area de desenvolvimento, pois essa area inclui a maioria do espaco reciclavel. Em vez de tempos de pausa ocasionais, mas demorados, para coletar todo o heap, a area de desenvolvimento e coletada com mais frequencia e, se essa area for pequena o bastante, os tempos de pausa serao relativamente menores. Entretanto, a Coleta de