Estava fazendo algumas pesquisas sobre as possibilidades de se usar referências fracas. Aqui no GUJ encontrei um post que falava duma situação semelhante a minha: http://www.guj.com.br/posts/list/129473.java
Não postei no mesmo tópico, pois não tinha certeza se seria interessante “ressucitá-lo” (apesar de não ser tão antigo)…
Minha dúvida é a seguinte:
Naquele caso da referência circular o uso de referência fraca previne o sistema de gerar vazamento de memória, correto? Que tipo de impacto esse uso tem no desempenho do sistema?
Estou pesquisando ainda, mas é difícil encontrar algo no google quando não se tem muita certeza sobre que palavras chaves adequadas a usar na busca.
Eu fiquei na dúvida se aquele exemplo geraria vazamento de memória. Como tenho um ambiente parecido acabei pensando em fazer uso desse recurso para prevenir.
Em todo caso tenho, além desta situação, uma outra onde pensei em utilizar SoftReference para fazer cache de alguns dados e ainda não pude identificar seu impacto no desempenho do sistema.
Como tenho algumas dependências não pude fazer um teste prático para verificar esse desempenho e isso me preocupa, pois não tenho certeza de que o custo de processamento compense a otimização da memória.
Alguma dica/idéia?
rogelgarcia
Eu uso um WeakReference… pra fazer cache…
Não acho que tenha impactos significativos em performance nao…
Uso principalemente para fazer cache de informacoes que custam caro… como consultas em banco de dados…
A performance do WeakReference nesses casos com certeza será superior do que buscar a informacao novamente…
Espero ter ajudado
Até mais
eberson_oliveira
Obrigado.
Ao menos vou poder fazer meus testes sabendo que a relação custo/denefício deve ser positiva desde que a minha implementação seja adequada.