[Cascavel-pm] Estouro de memoria usando o split

Frederico Fernandes Recsky frederico.recsky em sagem-orga.com.br
Quarta Março 8 04:24:56 PST 2006


Ola!

Luiz Gonzaga wrote:
> Pessoal, estou com um problema no uso do split.
>
> Tenho uma string muito grande, com mais de 25 milhoes de caracteres, e quero 
> fazer um split para carrega-la em um array.
>   

Eu também gero e preciso dividir grandes arquivos de dados. Uma vez que
eu tive que dividir uma de 1Gb e pouco. Meu programa gerou essa saida em
uma string. Tive o mesmo problema para gerar o split.
O que eu fiz, foi gravar a saida em um arquivo, e esvaziei a memoria.
Depois eu  li o arquivo novamente, mas eu mudei a variavel $/ , que é a
que define o fim de linha para dado que seria usado no split. 

ao invez de :

<code>
@x = split(/X/,...
</code>

usei :

<code>

$/ = X;

open(ARQ,...)

while(<ARQ>){

# faça alguma coisa

}

</code>

Detalhe,

Nesse faça alguma coisa, se você colocar tudo em um vetor novamente, e
ele for maior que memoria disponivel, vai dar na mesma. No meu caso,
dentro do while eu fazia um processamento e colocava a saida em um arquivo.

Se voce for picar muito essa string gigante, em pedaços muito pequenos,
talvez precise pensar em uma forma de agrupar os dados semelhantes e
salva-los depois. Ou talvez usar um banco de dados.

[]'s



-- 
Frederico Recsky 
int x=2656838,y=152645;main(){putchar(x);x>>=y&7;y>>=4;return(y)?main():0;}
Linux User num. 253572

Sagem Orga
Av. Independência, 3451
Jardim de Alah
12032-000 - Taubaté - SP - Brasil
Fone: + 55 (12) 3609-6017
Mob:  + 55 (12) 8116-4316
Fax:  + 55 (12) 3609-6058
E-mail:   f.recsky em darumaorga.com.br
Internet: http://www.darumaorga.com.br

----------------------------------------------------------

Besuchen Sie uns vom 09. bis 15.03.2006 auf der CeBIT
Halle 17, BANK-FINANZ-SYSTEME, Stand: A 01.43
http://www.bank-finanz-systeme.de


Visit Sagem Orga at CeBIT in Hanover (09. bis 15.03.2006)
Hall 17, BANK-FINANZ-SYSTEME, booth: A 01.43
http://www.bank-finanz-systeme.de


Mais detalhes sobre a lista de discussão Cascavel-pm