SlideShare uma empresa Scribd logo
Funcionamento e otimização da
Garbage Collection na Oracle
Hotspot JVM
Serge Gebhardt – @sergegebhardt – http://sgeb.me
Adriano Bonat – @tanob
TDC 2013, Porto Alegre
Quem já teve problemas de performance
resolvidos com a otimização do GC?
Exemplos de problemas de GC
Exemplos de problemas de GC

Tempo de resposta aumenta com tempo
Exemplos de problemas de GC

GC lento demais: aplicação pausada
Exemplos de problemas de GC

Pode ser relacionado ao GC,
mas não necessariamente
Objetivos do GC
● reduzir Latência (latency)
○ exemplo 1: tempo de resposta

● aumentar Vazão (throughput)
○ exemplo 2: gastar o menor tempo possivel no GC

● reduzir Footprint
○ exemplo 3: a memória não é infinita
Gerência de memória explícita
char *buffer = (char *) malloc(1024 * sizeof
(char));
…
free(buffer);
Suscetível a esses problemas:
● Ponteiro inválido (dangling pointer)
● Vazamento de memória (memory leak)
● Controle manual de desalocação
Gerência de memória automática
Responsabilidades do garbage collector (GC):
● alocar memória
● manter objetos referenciados na memória
● desalocar memória de objetos que não são
mais referenciados
● tornar a memória desalocada disponível
para próxima alocação
Características do GC Automático

Serial

Parallel
Características do GC Automático

Stop-The-World (serial)
Concurrent
Stop-The-World (parallel)
Concurrent
Características do GC Automático
● compacting vs non-compacting
Inicio

Compacting

Non-compacting
Conceito de Gerações
A maioria das aplicações têm:
● Objetos de vida curta (efêmeros)
● Raras referências de objetos antigos para
novos objetos
⇒ Separar os objetos em duas gerações:
● Young Generation
● Old Generation
Conceito de Gerações
Tipos de GC na JVM Oracle
1.
2.
3.
4.
5.

Serial Collector
Parallel Collector
Parallel Compacting Collector
Concurrent Mark-Sweep (CMS) Collector
Garbage First (G1) a partir do Oracle JDK 7
-XX:+UseSerialGC

1. Serial Collector
As duas geracões (young e old):
● Serial (usa só um core)
● Stop-The-World (a aplicação é
pausada)
-XX:+UseSerialGC

1. Serial Collector - Young Gen
-XX:+UseSerialGC

1. Serial Collector - Young Gen
-XX:+UseSerialGC

1. Serial Collector - Old Gen
“Mark-Sweep-Compact”
-XX:+UseSerialGC

1. Serial Collector
Em geral usado em modo “client”
quando:
● não tem multiplos cores / CPUs
● com pouca memória
● pode ter pausas de alguns
minutos no worst-case
-XX:+UseParallelGC

2. Parallel Collector - Young Gen
● Em paralelo (usa múltiplos
cores / CPUs)
● Stop-The-World (a aplicação é
pausada)
Mesma estratégia do que no
Serial Collector, mas em
paralelo
-XX:+UseParallelGC

2. Parallel Collector - Old Gen
● Serial (usa só um core)
● Stop-The-World (a aplicação é
pausada)
Mesma estratégia do que no
Serial Collector
-XX:+UseParallelGC

2. Parallel Collector
Usado quando:
● tem múltiplos cores / CPUs
● pode ter pausas de alguns
minutos no worst-case
Exemplos: cálculos cientificos,
billing, batch processing
Em geral é melhor usar o
Parallel Compacting Collector
(próximo slide)
Young Gen

Old Gen
-XX:+UseParallelOldGC

3. Parallel Compacting Collector
Young Gen:
Parallel (mesma
estratégia do que no
Parallel Collector)
Old Gen:
Parallel

Young Gen

Old Gen

Os dois são Stop-TheWorld
-XX:+UseParallelOldGC

3. Parallel Compacting Collector
Usado quando:
● tem múltiplos cores / CPUs
● pode ter pausas de alguns segundos no worst-case
● eventualmente vai substituir o Parallel Collector
Não usa quando nenhum proceso pode pausar a máquina
(por exemplo SunRays). Neste caso pode limitar o número
de CPUs usado pelo GC: -XX:ParallelGCThreads=n
-XX:+UseConcMarkSweepGC

4. Concurrent Mark-Sweep (CMS) Collector
Young Gen:
Parallel e Stop-The-World
(mesma estratégia do que
no Parallel Collector)

Young Gen

Old Gen

Old Gen:
Parallel e Concurrent (ao
mesmo tempo do que a
aplicação usando
múltiplos cores / CPUs)
-XX:+UseConcMarkSweepGC

4. Concurrent Mark-Sweep (CMS) Collector
● Opção para ativar o
Concurrent Mark
incremental:
-XX:+CMSIncrementalMode

● Dá mais tempo de
processamento para a
aplicação quando tem
poucos cores / CPUs (~1
ou 2)

Old Gen
-XX:+UseConcMarkSweepGC

4. Concurrent Mark-Sweep (CMS) Collector
● Não compactador ⇒ fragmentação do Old Gen

Old Gen

● Fragmentação do Old Gen pode resultar em
pausas longas no GC do Young Gen
● Stop-The-World quando falta memória na Old
Gen
-XX:+UseConcMarkSweepGC

4. Concurrent Mark-Sweep (CMS) Collector
● Mais trabalho ⇒ mais overhead
● Precisa de mais memória (pq é concurrent)
● Mas menos latência; o CMS é também chamado de
low-latency collector
Usa quando:
● precisa pausas curtas de GC ⇒ pouca latência
● tem suficiente número de cores / CPUs (ao mínimo 2)
Exemplo: servidores web
-XX:+UseG1GC

5. Garbage First (G1) a partir do Oracle JDK 7
Motivações:
● Reduzir fragmentação
● Tempos de pausa mais previsíveis (-XX:
MaxGCPauseMillis=n)
-XX:+UseG1GC

5. Garbage First (G1) a partir do Oracle JDK 7
Comparação das estratégias
Serial
Collector

Parallel
Collector

Parallel
Compacting
Collector

CMS

G1

Young
Gen

Serial
STW

Parallel
STW

Parallel
STW

Parallel
STW

Parallel
STW

Old
Gen

Serial
STW

Serial
STW

Parallel
STW

Parallel
Concurrent

Parallel
Concurrent

STW = Stop-The-World
Ergonomics a partir do Oracle JDK 5
Máquina “client”

Máquinas “server”
(CPUs >= 2 && RAM >= 2 GB
&& ! Win_32)

Modo da JVM
(pode forçar com
-client ou -server)

client

server

Garbage Collector

Serial Collector

Parallel Collector

Tamanho inicial do Heap 4 MB
(-Xmsn)

1/64 da memória total, até 1 GB
(mínimo 32 MB)

Tamanho max do Heap
(-Xmxn)

1/4 da memória total, até 1 GB

64 MB
Métricas e análise do GC
Dicas para uma boa análise de
performance
● Suite de testes de performance
● Representativo do uso em produção
● Para cada medida, variar apenas um
parâmetro
JMX
Permite a conexão à JVM a distância
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
JMX
● JConsole
● VisualVM
(+ VisualGC)
Arquivos de log
Opções da linha de comando:
● -XX:+PrintGC
● -XX:+PrintGCDetails
○ com mais detalhes

● -XX:+PrintGCTimeStamps
○ com datas absolutas
Outras ferramentas
●
●
●
●
●

jmap
jstat
hprof: Heap Profiler
hat: Heap Analysis Tool
Eclipse MAT (Memory Analyzer)
Exemplo, antes:
Concurrent Mark-Sweep (CMS)
Exemplo, antes:
Concurrent Mark-Sweep (CMS)
Exemplo, antes:
Concurrent Mark-Sweep (CMS)
Exemplo, antes:
CMS, com GC manuais
Exemplo, análise
Máquina com 4 CPUs e 1 GB alocado à JVM
● Comportamento da aplicação
● Frequência e tamanho das alocações no
heap (Young Gen)
● Frequência das promoções Young → Old
● Tempo passado no GC (Young e Old Gen)
● Fragmentação do Old Gen
⇒ Encontramos o worst-case do CMS!
Exemplo, depois:
Parallel Compacting Collector
Exemplo, depois:
Parallel Compacting Collector
Exemplo, depois:
Parallel Compacting Collector
Exemplo, resumo
● O GC recomendado não é sempre o melhor:
Servidor web ⇒ latência mínima ⇒ CMS?
● Neste caso a funcionamento interno da
aplicação fiz com que o Parallel Compacting
Collector foi muito melhor
● Testa a performance dos varios GCs, mas
entente sua aplicação para poder otimizar!
Assuntos mais avançados
● Cada estratégia de GC tem mais parâmetros
para configurar os detalhes
○ -XX:MaxGCPauseMillis=n
○ -XX:GCTimeRatio=n
○ –XX:NewSize=n / –XX:NewRatio=n / –XX:
SurvivorRatio=n
○ –XX:ParallelGCThreads=n
○ –XX:GCTimeRatio=n

● Exige um bom entendimento da aplicação
● Na nossa experiência é raro precisar mudar
essas opções
Referências
● http://www.oracle.
com/technetwork/java/javase/memorymanagementwhitepaper-150215.pdf
● http://www.infoq.com/articles/G1-One-GarbageCollector-To-Rule-Them-All
● http://www.oracle.
com/webfolder/technetwork/tutorials/obe/java/G1Getting
Started/index.html
Perguntas?
Obrigado!
Serge Gebhardt – @sergegebhardt – http://sgeb.me
Adriano Bonat – @tanob
TDC 2013, Porto Alegre

Mais conteúdo relacionado

Mais procurados

NoSQL: Uma análise crítica
NoSQL: Uma análise críticaNoSQL: Uma análise crítica
NoSQL: Uma análise críticapichiliani
 
So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012Bill Lima
 
Isolamento e mvcc
Isolamento e mvccIsolamento e mvcc
Isolamento e mvccLocaweb
 
TASSEL - Trait Analysis by aSSociation, Evolution and Linkage
TASSEL - Trait Analysis by aSSociation, Evolution and LinkageTASSEL - Trait Analysis by aSSociation, Evolution and Linkage
TASSEL - Trait Analysis by aSSociation, Evolution and LinkageMarcos Castro
 
Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...
Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...
Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...Joao Galdino Mello de Souza
 
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...Joao Galdino Mello de Souza
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinMarcos Castro
 
Kernel com requisitos temporais
Kernel com requisitos temporaisKernel com requisitos temporais
Kernel com requisitos temporaisRodrigo Almeida
 
Gerenciamento de Servidores Linux utilizando SNMP
Gerenciamento de Servidores Linux utilizando SNMPGerenciamento de Servidores Linux utilizando SNMP
Gerenciamento de Servidores Linux utilizando SNMPAndré Déo
 
Barman PGBR2017
Barman PGBR2017Barman PGBR2017
Barman PGBR2017wind39
 
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
Behind the Scenes: z Systems CACHE por Carolina de Souza Joaquim - IBM Brasil
Behind the Scenes: z Systems CACHE por Carolina de Souza Joaquim - IBM BrasilBehind the Scenes: z Systems CACHE por Carolina de Souza Joaquim - IBM Brasil
Behind the Scenes: z Systems CACHE por Carolina de Souza Joaquim - IBM BrasilJoao Galdino Mello de Souza
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de EscalonamentoJunior Cesar
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processosTalles Nascimento Rodrigues
 
3 escalonamento processos
3 escalonamento processos3 escalonamento processos
3 escalonamento processosfrteles
 

Mais procurados (20)

NoSQL: Uma análise crítica
NoSQL: Uma análise críticaNoSQL: Uma análise crítica
NoSQL: Uma análise crítica
 
So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012
 
Isolamento e mvcc
Isolamento e mvccIsolamento e mvcc
Isolamento e mvcc
 
TASSEL - Trait Analysis by aSSociation, Evolution and Linkage
TASSEL - Trait Analysis by aSSociation, Evolution and LinkageTASSEL - Trait Analysis by aSSociation, Evolution and Linkage
TASSEL - Trait Analysis by aSSociation, Evolution and Linkage
 
Rtai Apresentacao
Rtai ApresentacaoRtai Apresentacao
Rtai Apresentacao
 
Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...
Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...
Análise de Capacidade e Desempenho em sistemas online utilizando no conceito ...
 
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
Monitoramento contínuo em dia de pico de consumo ajuda a determinar o número ...
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round Robin
 
Kernel com requisitos temporais
Kernel com requisitos temporaisKernel com requisitos temporais
Kernel com requisitos temporais
 
Gerenciamento de Servidores Linux utilizando SNMP
Gerenciamento de Servidores Linux utilizando SNMPGerenciamento de Servidores Linux utilizando SNMP
Gerenciamento de Servidores Linux utilizando SNMP
 
Barman PGBR2017
Barman PGBR2017Barman PGBR2017
Barman PGBR2017
 
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
Drupal + Rex
Drupal + RexDrupal + Rex
Drupal + Rex
 
TCC Pré Banca
TCC Pré BancaTCC Pré Banca
TCC Pré Banca
 
Behind the Scenes: z Systems CACHE por Carolina de Souza Joaquim - IBM Brasil
Behind the Scenes: z Systems CACHE por Carolina de Souza Joaquim - IBM BrasilBehind the Scenes: z Systems CACHE por Carolina de Souza Joaquim - IBM Brasil
Behind the Scenes: z Systems CACHE por Carolina de Souza Joaquim - IBM Brasil
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de Escalonamento
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
TCC Apresentacao Final
TCC Apresentacao FinalTCC Apresentacao Final
TCC Apresentacao Final
 
3 escalonamento processos
3 escalonamento processos3 escalonamento processos
3 escalonamento processos
 

Semelhante a Funcionamento e otimização da Garbage Collection na Oracle Hotspot JVM

Java Virtual Threads.pptx
Java Virtual Threads.pptxJava Virtual Threads.pptx
Java Virtual Threads.pptxssuser980608
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniZ13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniJoao Galdino Mello de Souza
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosEmbarcados
 
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...Tchelinux
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon Web Services LATAM
 
Testes de escalabilidade usando cloud
Testes de escalabilidade usando cloudTestes de escalabilidade usando cloud
Testes de escalabilidade usando cloudPET Computação
 
Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015
Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015
Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015Armando Alaminos Bouza
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoFabio Telles Rodriguez
 
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...Marlon Willrich
 
Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Rodrigo Campos
 
Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Otávio Santana
 
Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosMarcelo Barros de Almeida
 

Semelhante a Funcionamento e otimização da Garbage Collection na Oracle Hotspot JVM (20)

Java Virtual Threads.pptx
Java Virtual Threads.pptxJava Virtual Threads.pptx
Java Virtual Threads.pptx
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniZ13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcados
 
Mini-curso CUDA
Mini-curso CUDAMini-curso CUDA
Mini-curso CUDA
 
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
 
Palestra
PalestraPalestra
Palestra
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenho
 
Testes de escalabilidade usando cloud
Testes de escalabilidade usando cloudTestes de escalabilidade usando cloud
Testes de escalabilidade usando cloud
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015
Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015
Curso CAT3D 2015 - Resumo das noviades entre 2014 e 2015
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Criando Aplicações Resilientes
Criando Aplicações ResilientesCriando Aplicações Resilientes
Criando Aplicações Resilientes
 
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula2 - Semana Sistemas de Informação 2015 - UNI...
 
Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!
 
GlusterFs
GlusterFsGlusterFs
GlusterFs
 
Performance em Java
Performance em JavaPerformance em Java
Performance em Java
 
Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]
 
Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passos
 

Funcionamento e otimização da Garbage Collection na Oracle Hotspot JVM