Por que usar e sua utilização gc()?

4 respostas
P

Olá pessoal ,

por que usar System.gc() e se sua utilização degrada a aplicação ?

abs

4 Respostas

davidbuzatto

http://www.guj.com.br/posts/list/49101.java

ViniGodoy

O System.gc() pede para o Java rodar o Garbage Collector. É importante notar que ele só pede, mas não obriga. Agora, acho que nunca vi o java ignorar uma coleta de lixo solicitada por esse método (a menos que você rode o comando várias vezes seguidas).

Quanto à performance degradar a aplicação, vai depender mais de como ele é usado. Via de regra, não é necessário e é melhor deixar essa tarefa com o Java, mas em algumas aplicações, como jogos por exemplo, seu uso é interessante.

No caso dos jogos, um exemplo é quando você troca de fase.

Primeiramente, lembremos que jogos são aplicações que usam recursos gráficos com muito mais intensidade do que o Swing, e a pausa do Gargage Collector pode causar um efeito pouco desejado.

Quanto um nível acaba, vários objetos são descarregados. Antes de iniciar o novo nível, novos objetos são carregados. Corremos portanto um forte risco do GC rodar no meio da próxima fase.

Então, depois de descarregar os objetos da fase anterior, pedimos ao java que rode o Garbage Collector. Esse é um dos raros casos que rodar o GC na mão apresenta resultados que sejam bons e perceptíveis.

Finalmente, vale destacar que há muito mito sobre a performance do Garbage Collector. Ele é extremamente eficiente. Tentar dar dicas para ele, salvo raras exceções, é uma idéia mais prejudicial do que boa.

bebad

Falou e disse, o evangelista Vini x)

Não mexe na merda que fede :wink:

ViniGodoy

Sendo ainda mais evangelista:

1. E então, olhou para o alto do monte, e envolto em luzes disse: 2. “Não inteferirás no garbage collector!” 3. E seus discipulos regozijaram-se.

ahahahahaha…

Criado 18 de janeiro de 2007
Ultima resposta 18 de jan. de 2007
Respostas 4
Participantes 4