[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