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