Marcos,

Em primeiro lugar, lembre-se que System.gc() nao forca o garbage collector,
e sim o "induz" a ser executado. Teoricamente, o trecho de codigo esta'
correto, no entanto voce pode torna-lo mais eficiente:

1. Voce esta' inicializando o vector com o tamanho padrao. Isso e' caro,
pois ele vai ter que se redimensionar dinamicamente para suprir o espaco
requerido pelo seu laco. Tente inicializar o vector com aproximadamente o
tamanho de elementos a serem armazenados (i.e. numero de iteracoes do laco,
sei la'...).

2. Em vez de apontar o vector para null, utilize o metodo
vect.removeAllElements(), que apaga os elementos e mantem o tamanho atual do
mesmo.  Lembre-se que criacao de objetos e' uma tarefa muito cara em java.

3. Para otimizar mais ainda, instancie o vetor fora do laco for, apenas uma
vez, e fique limpando o mesmo a cada fim de iteracao.

OK ?

O que deve estar ocorrendo e' que o garbage collector nao deve estar tendo
tempo para se executar, uma vez que se outro processo esta' sendo executado
com mais prioridade, o mesmo nao o interrompera'. Para se assegurar que o
garbage collector esta' trabalhando, utilize o parametro -verbosegc na
execucao do seu programa.


Espero ter ajudado.

[]'s

Rogerio







> -----Original Message-----
> From: Marcos Ibuki [mailto:[EMAIL PROTECTED]]
> Sent: sexta-feira, 20 de outubro de 2000 20:08
> To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: [java-list] Problema para liberar memsria.
>
>
>
>   Oi pessoal.
>
>   Estou com um problema de performance. Por exemplo,
> declaro uma variavel desta forma:
>
>   for (int i=0;i<max;i++) {
>     Vector vect = new Vector();
>     ...
>     vect = null;
>     ...
>   }
>   Aparentemente esta area do programa esta gerando um
> consumo muito alto de memsria, uma vez que "max"
> interagues acontecem e "vect" i um vetor com muitas
> posigues (muitas mesmo).
>
>   Eu pensei (e ainda penso) que atribuindo "null" `
> variavel ocorria uma liberagco da memsria alocada para
> aquela variavel, de forma que o garbage collector se
> encarregaria do resto.
>
>   Mesmo forgando o garbage collector com System.gc();
> o consumo de memsria continuou a aumentar, a cada vez
> que o csdigo acima era executado
>
>   Alguim poderia por favor me esclarecer esta questco?
>
>   Obrigado.
>
>   Marcos Yoshiaki Ibuki
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Messenger - Talk while you surf!  It's FREE.
> http://im.yahoo.com/
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br  -  Sociedade de Usuarios Java da Sucesu-SP
> dzvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a