Criando um Cache  XML
Índice dos Fóruns » Artigos e Tutoriais
Autor Mensagem
Administrador
Java Eldar

Membro desde: 02/08/2002 12:27:02
Mensagens: 0
Offline

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!

This message was edited 1 time. Last update was at 19/07/2005 20:52:18

[Email]
Guilherme Silveira
Administrador

Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline

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

-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
[Email] [WWW] [MSN]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

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.

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
Guilherme Silveira
Administrador

Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline

Paulo Silveira wrote: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.


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

-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Artigos e Tutoriais
Ir para:   
Powered by JForum 2.1.8 © JForum Team