A ferramenta que estamos desenvolvendo propõe-se a converter os dados da pesquisa PNAD do IBGE,
de um formato proprietário utilizado pelo programa estatístico denominado SAS, para formatos mais acessíveis.
Dois desses formatos são .xls e .mdb (Excel e Access respectivamente).
Para realizar essa conversão estou utilizando duas APIs para Java que manipulam arquivos Excel e Access.
A API JXL para Excel e a JACKCESS para Access.
Pois bem, o que está acontecendo é que para conversões de grande porte, ou seja, quando o arquivo de dados de entrada possui muitas linhas (o maior possui mais de 400.000), a memória vai enchendo até que aconteça um estouro de memória ou o travamento do sistema operacional, por super utilização da memória disponível.
O problema é que nessas APIs, parece que os dados que estão sendo lidos, vão sendo armazenados na memória
da máquina virtual (VM) até que todo o arquivo com os dados de entrada tenha sido lido e, por isso,
acontece o estouro de memória.
Para a conversão para o formato CSV (separado por vírgulas), esse problema não acontece,
provavelmente por que ele grava uma linha e já elimina os dados da memória para ler a próxima linha.
Bom se alguem puder me dar uma luz agradeço!
Muito Obrigado galera ! absss !
