Olá Pessoal.

   Em primeiro lugar gostaria de agradecer ao Leonardo
Souza e ao Rogerio Rangel por terem me dado soluções
para o problema.

   Gostaria de complementar a questão.

   O mesmo 'for' está dentro de uma transferCallBack,
que é uma classe que recebe o retorno de uma query em
um bd oracle.

   class ReturnedValue implements
TransferCallBackListener { 
   ...
   for (int i=0;i<max;i++) {
     Vector vect = new Vector();
     ...
     vect = null;
     ...
   }
   ...
 }

   Uma série de queries são feitas em sequência e o
retorno tb se constitui de uma série de resultSets.
Cada resultSet passará pelo código que inclui o 'for'.

   A questão é: ocorrerá uma thread para cada
resultSet (de forma que haja um 'vect' para cada
resultSet) ou haverá uma mistura entre o processamento
de cada resultSet (ou seja tudo bagunçado na mesma
thread)?

   Não sei se a pergunta é totalmente válida pois
estou meio perdido com este trecho do código.

   Agradeço muito se alguém puder me ajudar.

   Obrigado,

   Marcos Yoshiaki Ibuki


--- Leonardo Souza Mario Bueno <[EMAIL PROTECTED]>
wrote: > Ola Marcos,
> 
> ----- Original Message -----
> From: Marcos Ibuki <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>;
> <[EMAIL PROTECTED]>
> Sent: Friday, October 20, 2000 9:08 PM
> Subject: Problema para liberar memória.
> 
> 
> >
> >   Oi pessoal.
> >
> >   Estou com um problema de performance. Por
> exemplo,
> > declaro uma variável desta forma:
> >
> >   for (int i=0;i<max;i++) {
> >     Vector vect = new Vector();
> >     ...
> >     vect = null;
> >     ...
> >   }
> >   Aparentemente esta área do programa está gerando
> um
> > consumo muito alto de memória, uma vez que "max"
> > interações acontecem e "vect" é um vetor com
> muitas
> > posições (muitas mesmo).
> >
> >   Eu pensei (e ainda penso) que atribuindo "null"
> à
> > variável ocorria uma liberação da memória alocada
> para
> > aquela variável, de forma que o garbage collector
> se
> > encarregaria do resto.
> >
> >   Mesmo forçando o garbage collector com
> System.gc();
> > o consumo de memória continuou a aumentar, a cada
> vez
> > que o código acima era executado
> >
> >   Alguém poderia por favor me esclarecer esta
> questão?
> 
>     Você pode tomar várias medidas para melhorar o
> desempenho deste
> código...
> 
>     1) Se voce estiver acessando o vetor a partir de
> um único thread use
> ArrayList ao inves de Vector (ArrayList não é
> synchronized)
>     2) Passe como parametro para o construtor a
> capacidade inicial de
> elementos que você espera utilizar:
> 
>         ArrayList array = new
> ArrayList(CAPACIDADE_INICIAL);
>     3) Instancie o ArrayList fora do for e use
> array.clear() ao invés de
> vect = null
> 
>       ArrayList array = new
> ArrayList(CAPACIDADE_INICIAL);
> 
>        for (int i=0;i<max;i++) {
>         ...
>          array.clear();
>          ...
>        }
>        array = null;
> 
> Quando você atribui null a uma váriável E o objeto
> referenciado por ela
> nao possui nenhuma outra referencia ele PODE ser
> garbage collected.
> 
> Quando voce chama System.gc(), voce apenas indica a
> JVM que ela deveria
> executar o garbage collector... isto não garante que
> ela ira executar.
> 
> Leonardo
> .........................................
> Leonardo Souza Mario Bueno
> itera Informática
> [EMAIL PROTECTED]
> +55 27 337-0317
> Visite o site da itera em:
> http://www.itera.com.br
> .........................................
> 
> >
> >   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 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] 
>
-------------------------------------------------------------------------
> 


__________________________________________________
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 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