| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/08/2002 20:04:43
|
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2002 03:32:24
|
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
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2002 13:09:39
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/08/2002 05:47:12
|
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
 |
|
|
 |
|
|