Olá pessoal ,
por que usar System.gc() e se sua utilização degrada a aplicação ?
abs
Olá pessoal ,
por que usar System.gc() e se sua utilização degrada a aplicação ?
abs
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.
Falou e disse, o evangelista Vini x)
Não mexe na merda que fede 
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…