Problema Heap Space

6 respostas
S

Pessoal estou com um problema de heap space aqui em não estou conseguindo resolver de forma alguma segue erro , se algum puder ajudar :

O problema ocorre com um determinado arquivo que tem 75 mil linhas de procedimentos e gera a exception abaixo com estouro de memória.

2012-11-19 15:06:08,796 [Finalizer DEBUG FileManager]: Knock Knock Finalizer [3]

Exception in thread ParserService java.lang.OutOfMemoryError: Java heap space

2012-11-19 15:08:19,380 [ParserAutomatic DEBUG FileManager]: FileManager.getNextWaitParser() waiting

at java.util.Arrays.copyOf(Unknown Source)

at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)

at java.lang.AbstractStringBuilder.append(Unknown Source)

at java.lang.StringBuffer.append(Unknown Source)

at br.com.unimed.extrato.conversor.parser.TransformSinteticoATxtToCSV.processaLinhaAnalitico(TransformSinteticoATxtToCSV.java:1088)

at br.com.unimed.extrato.conversor.parser.TransformSinteticoATxtToCSV.parseAnalitico(TransformSinteticoATxtToCSV.java:865)

at br.com.unimed.extrato.conversor.parser.TransformSinteticoATxtToCSV.processaArquivoAnalitico(TransformSinteticoATxtToCSV.java:750)

at br.com.unimed.extrato.conversor.parser.TransformSinteticoATxtToCSV.parseTxtToCSV(TransformSinteticoATxtToCSV.java:349)

at br.com.unimed.extrato.conversor.parser.TransformSinteticoATxtToCSV.transformSinteticoAnaliticoToCSV(TransformSinteticoATxtToCSV.java:706)

at br.com.unimed.extrato.webstart.service.file.parser.ParserService.run(ParserService.java:129)

at java.lang.Thread.run(Unknown Source)

6 Respostas

E

Aumente a quantidade de memória reservada para rodar sua aplicação. Tipicamente você acerta o parâmetro -Xmx.

O parâmetro default é por volta de 32 MB, que é muito pouco para rodar qualquer coisa.

X

Aumenta a memoria da aplicação…
-Xmx1024m

deve resolver…
e tome cuidado com a forma que esta manipulando as informações para não prejudicar a performance da aplicação devido ao tamanho do arquivo…

R

entanglement:
Aumente a quantidade de memória reservada para rodar sua aplicação. Tipicamente você acerta o parâmetro -Xmx.

O parâmetro default é por volta de 32 MB, que é muito pouco para rodar qualquer coisa.

Você tem certeza disso? Até onde eu saiba esse valor varia de acordo com a arquitetura que está rodando o Java (isso a partir do Java 6, já o valor padrão no Java 5 é 64MB).

S

Já fiz isso e descobri que no Java 64 bits a aplicação funciona sem ter que colocar parametro algum. Já no java 32bits o problema acontece, mesmo colocando parametros -Xmx1024m

X

Possible solutions:

Reduce memory load on the system

Increase physical memory or swap space

Check if swap backing store is full

Use 64 bit Java on a 64 bit OS

Decrease Java heap size (-Xmx/-Xms)

Decrease number of Java threads

Decrease Java thread stack sizes (-Xss)

Set larger code cache with -XX:ReservedCodeCacheSize=

R

Isso porque dependendo do tamanho do processamento (você está aparentemente convertendo um TXT para CSV), uma JVM de 32 bits pode não aguentar por limitações da própria arquitetura.

Criado 18 de janeiro de 2013
Ultima resposta 18 de jan. de 2013
Respostas 6
Participantes 4