Help - sistem.gc() obrigatorio existe?

Olá pessoal…gostaria de um help de vcs; é o seguinte : Estou fazendo um programa de otimização na universidade e preciso usar nele muita alocação e desalocação de objetos. Eu tenho usado o System.gc() mas como ele é um tread de baixa prioridade e assincrono estou tendo problemas de falta de memoria e olha que a minha máquina tem 512M :!:

Preciso saber urgentemente se há como obrigar o Java a recolher memoria alocada imediatamente.

Valeu e agradeço desde já por qualquer ajuda. :wink:

cara, infelizmente naum é possível, pois quando vc executa a linha System.gc(); vc apenas dá um alerta para a jvm, mas naum garante que uma thread de maior prioridade seja executado.

dica: tente atribuir null as suas variáveis, objetos após a utilização, pois isso garante a liberação dos objetos com maior antecedência.

o renan está correto, mas tem mais uma coisa: não importa se a tua máquina possui 512MB pois a configuração default da JVM ocupa no máximo 128MB, ou seja se vc quiser ocupar efetivamente teus 512MB tens que passar como argumento na execução do teu programa do seguinte modo:

java -Xms256M -Xmx512M

terminei ontem um artigo exatamente sobre isso … algumas “ajudas” que podemos dar ao garbage collector … vou passar pro pessoal do pj pra eles publicarem ! depois deem uma lida lá … fui

legal…
mas viu newton
nao adiantaria obrigar a maquina virtual a chamar o garbage collector
quando ela esta prestes a ficar sem memoria ela ja tentou isso faz tempo
entao o problema deve ser outro

[]'s