GC e String Pool  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Marck
Virtual Machine Man
[Avatar]

Membro desde: 15/08/2006 16:15:11
Mensagens: 598
Offline

Boa tarde,

Alguém sabe se o GC faz coleta no Pool de String?

obrigado!

This message was edited 2 times. Last update was at 15/12/2008 11:45:16


"A vida me deu tudo que eu pedi. Agora se o que eu pedi foi pouco, ai o problema já é meu!". Sartre

Besteiras sobre programação

http://toobject.wordpress.com/
DataModelDinamic
[Email] [WWW] [MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20557
Localização: Curitiba/PR
Offline

Não há nada que impeça ele de fazer isso. Mas o comportamento exato varia de VM para VM.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Marck
Virtual Machine Man
[Avatar]

Membro desde: 15/08/2006 16:15:11
Mensagens: 598
Offline

Mas geralmente, há coleta dentro do Pool?

"A vida me deu tudo que eu pedi. Agora se o que eu pedi foi pouco, ai o problema já é meu!". Sartre

Besteiras sobre programação

http://toobject.wordpress.com/
DataModelDinamic
[Email] [WWW] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Por exemplo, tente rodar este programa na JVM da Sun. Você vai ver que a string internada (isto é , posta no pool de strings) é tão suscetível à limpeza pelo GC como qualquer outra, se não houver referências para ela.

[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20557
Localização: Curitiba/PR
Offline

Ok, mas volto a dizer que esse comportamento é específico de implementação e não é, em hipótese alguma, obrigatório.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

E é por isso que indiquei que era para rodar o meu programa em uma JVM da Sun. Se for tentar rodar o mesmo programa em outra JVM não deve obter o mesmo resultado.
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20557
Localização: Curitiba/PR
Offline

Sim, eu sei, mas não custa reforçar e reforçar...

Contar com isso é, como dizemos em C++, contar com o "realm of undefined behavior".
[WWW]
ramilani12
GUJ Master
[Avatar]

Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline

Rodei em algumas plataformas:

Windows XP - SP3 - 3 gb RAM:
jdk 1.5_16 - SUN




IBM - AIX -
jdk: Java(TM) 2 Runtime Environment, Standard Edition (build pap64dev-20080315 (SR7))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 AIX ppc64-64 j9vmap6423-20080315 (JIT enabled)

Mal rodou:

Estorou a heap

Windows XP - SP3 - 3 gb RAM:
jdk: Bea JRockit - 1.5.12




Interessante que rodando pela JRE da bea foi mais rápido que jdk da sun....



my delicious|follow me|linkedin
[Email] [ICQ]
Marck
Virtual Machine Man
[Avatar]

Membro desde: 15/08/2006 16:15:11
Mensagens: 598
Offline


Rodei o programa e na minha JVM o GC fez bem seu trabalho!

Então, existe coleta dentro de um pool de strings mas depende da implementação da JVM!

Muito obrigado pelas respostas.

"A vida me deu tudo que eu pedi. Agora se o que eu pedi foi pouco, ai o problema já é meu!". Sartre

Besteiras sobre programação

http://toobject.wordpress.com/
DataModelDinamic
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team