ExpertiDict

Java · Intermediário · Inglês · Técnico

OutOfMemoryError

/aʊt əv ˈmɛməri ˈɛrər/substantivo

Erro lançado quando a JVM não consegue alocar memória, mesmo após coletar, como heap esgotada, falta de metaspace ou de threads nativas.

Onde usar

Aparece em produção como 'Java heap space'. Primeiro passo: gerar um heap dump com -XX:+HeapDumpOnOutOfMemoryError e ver quem retém os objetos.

Em código

# arquivo jvm.options
-Xmx512m
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/tmp/dumps
# uso: java @jvm.options -jar app.jar

Exemplos

The service died with an OutOfMemoryError at three a.m.

O serviço morreu com um OutOfMemoryError às três da manhã.

Enable the heap dump on OutOfMemoryError before the next deploy.

Habilite o heap dump no OutOfMemoryError antes do próximo deploy.

Cuidado

Aumentar o -Xmx sem investigar só adia o problema se houver vazamento; mensagens como Metaspace ou 'unable to create native thread' indicam outra causa.

Sinônimos

OOM

Veja também

Todos os termos de Java