Criando um Cache

3 respostas
A

Assunto: Como implementar um Cache, para que você guarde os seus elementos mais utilizados, e ao mesmo tempo não estoure a memória!

Você pode ler este tutorial na íntegra http://www.guj.com.br/java.artigo.6.1.guj

Por favor, coloque as suas dúvidas e seus comentários sobre este tutorial aqui.
Sinta-se livre para fazer qualquer tipo de pergunta, desta maneira você estará nos ajudando e aos outros usuários!

3 Respostas

Guilherme_Silveira

Achei muito legal, e simples, esse jeito de criar um objeto de cache.
Ainda pode ser aperfeicoado colocando o tempo maximo que um objeto pode ficar no cache e, tambem como opcional, o maximo de megas que devem ser guardados em cache.
Infelizmente Java nao tem nenhuma funcao .sizeof e o metodo convencional de descobrir o tamanho de um objeto eh, no minimo, um tanto quanto ruim. Entao fica um pouco dificil esse maximo de megas, se alguem tiver alguma solucao razoavel/boa, me de uma avisada.

Guilherme Silveira

Paulo_Silveira

Realmente seria uma boa idéia o cache expirar por tempo.

Porém ai, o removeEldestElement() não se encaixa direito, porque ele apenas remove o último, e só funciona usando uma das duas daquelas ordenações.

Se alguém estiver a fim de fazer um tutorial de um Cache que elimine por tempo, era legal. Tipo, ele tenta dar um get(), e se o tempo expirou o MAX_TIME, ele retorna null e remove o elemento do Map.

Guilherme_Silveira

Eu tenho ja umas classes assim, soh que eh copyrighted neh… inutil, mas blz, da pra basea…
O MAX_TIME nao pode ser constante, tem q ser setavel (com synchronized, claro)
Nao soh o get mas o metodo hasGot ou qq coisa do genero, que checa se uma url ja esta no cache (url pra um objeto, nao pra um site na internet, isso eh uma uri?) deve tambem fazer essa verificacao
E o metodo removeEldelst continuaria o mesmo. Mas precisa tambem de um removeRandom e remove(especifico).

Guilherme

Criado 27 de agosto de 2002
Ultima resposta 29 de ago. de 2002
Respostas 3
Participantes 3