Problema Heap Space

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)

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.

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…

[quote=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. [/quote]

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).

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

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=

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.