Alguém sabe se existe um jeito de fazer o GC trabalhar sem travar tudo?
GC concorrente
10 Respostas
Voce pode usar o GC paralelo que vem na jre da sun.
Porem como todo algoritmo que não para o mundo ele gera lixo flutuante.
É, nunca vou esquecer da frase “stop the world” repetida várias vezes na palestra de hot spot tunning no STD.
Você tava na palestra do SIMMON? Achei muito legal.
falando nisso, das 213 opções da jvm da sun a minha preferida é:
-XXAgressiveHeap
pois é eu tava… também foi umas das palestras que mais gostei…
Louds, vc disse 213 e fiquei curioso (que memória). Aí fui em http://developers.sun.com/events/techdays/presentations/brazil/HotSpotPerformanceTuning.pdf e lá diz 224. Tudo bem, ninguém é perfeito… rsrsrs
É que você não entendeu, das 213 opções ele gosta de da 225 :idea: :roll:
213 são as opções que eu tenho decoradas e uso no meu dia-a-dia
as outras 11 são bobas!
boa resposta louds, mas quais são as 11 bobas? Tô brincando… não precisa responder não… rsrsrs
Voce pode usar o GC paralelo que vem na jre da sun.
Porem como todo algoritmo que não para o mundo ele gera lixo flutuante.
Como que eu faço para usar o GC paralelo? Esse esquema de lixo flutuante atrapalha muito o desempenho?
valeu
Lixo flutuante atrapalha na performance no ponto que ele ocupa espaço inutil do teu heap.
Não posso falar muito sobre GC pq é um assunto complexo pra caramba e eu não estudei muito sobre isso.
A melhor dica aqui é voce ler os slides da palestra de VM tunning, o link tá num post anterior.
Não se espante se você entender quase nada do assunto, já li alguns artigos sobre o assunto e um livro, muito bom por sinal, que tava solto na biblioteca da minha facul, ainda assim tem alguns aspectos e algorítmos que funcionam meio que por mágica.
Porem se voce quer apenas algumas flags para brincar com sua VM, ai vão umas uteis:
-Xconcgc -> liga o gc concorrente
-XX:+UseParallelGC -> liga o gc paralelo
-XX:+NeverTenure
-XX:+AlwaysTenure
-> controlam o uso do semi-space que vem depois do eden (alguem lembra o nome?)
-XX:+UseConcMarkSweepGC -> usa mark-sweep concorrente
-XX:+UseTLAB -> usa thread-local allocation buffers
-XX:+UseParNewGC -> usa o novo algoritmo de gc paralelo (é um train collector?)
Com esses voce já tem lenha para semanas de tunning…
Valeu pela dica galera… Vou brincar bastante com isso essa semana :roll: