[Rio-pm] [DUVIDA] Array muito longo
Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999);my $fim = 999;my @memo while ($fim != 100){foreach (@ini){my $m = $_ * $fim; push (@memo, $m);}$fim--;}} Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999.Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Array muito longo
Acho que isso depende do sistema operacional. Por exemplo se vc tem overcommit desligado o malloc (usado internamente pelo interpretador) nunca vai dar falta de memória é provavelmente vc vai fazer swap de memória em disco. Se vc tem menos memória que o necessário tens que pensar em alternativas como salvar em disco, banco de dados, etc. Se o resultado é previsível e imutável talvez vc poderia substituir o array por uma função + cache. Mas testa primeiro na sua máquina e vê o que dá. Em 15/04/2014 13:33, Aureliano Guedes guedes_1...@hotmail.com escreveu: Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999); my $fim = 999; my @memo while ($fim != 100){ foreach (@ini){ my $m = $_ * $fim; push (@memo, $m); } $fim--; } } Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999. Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Array muito longo
Memória RAM é o limite. Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays 2014-04-15 18:33 GMT+02:00 Aureliano Guedes guedes_1...@hotmail.com: Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999); my $fim = 999; my @memo while ($fim != 100){ foreach (@ini){ my $m = $_ * $fim; push (@memo, $m); } $fim--; } } Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999. Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Array muito longo
RAM não necessariamente é RAM física. Conta SWAP e isso degrada performance pq é IO em disco. Em 15/04/2014 13:46, Stanislaw Pusep creakt...@gmail.com escreveu: Memória RAM é o limite. Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays 2014-04-15 18:33 GMT+02:00 Aureliano Guedes guedes_1...@hotmail.com: Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999); my $fim = 999; my @memo while ($fim != 100){ foreach (@ini){ my $m = $_ * $fim; push (@memo, $m); } $fim--; } } Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999. Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Array muito longo
Então. Eu queria evitar IO para nao perder em performance. Se eu usar um banco de dados ou cache nao sera um tipo de IO? Tiago Peczenyj tiago.pecze...@gmail.com escreveu: RAM não necessariamente é RAM física. Conta SWAP e isso degrada performance pq é IO em disco. Em 15/04/2014 13:46, Stanislaw Pusep creakt...@gmail.com escreveu: Memória RAM é o limite. Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays 2014-04-15 18:33 GMT+02:00 Aureliano Guedes guedes_1...@hotmail.com: Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999); my $fim = 999; my @memo while ($fim != 100){ foreach (@ini){ my $m = $_ * $fim; push (@memo, $m); } $fim--; } } Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999. Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Array muito longo
Sim, mas ai você passa o Devel::NYTProf e estuda os gargalos, reduzido o IO ao máximo SE vc precisar. Em 15/04/2014 13:59, Aureliano Guedes guedes_1...@hotmail.com escreveu: Então. Eu queria evitar IO para nao perder em performance. Se eu usar um banco de dados ou cache nao sera um tipo de IO? Tiago Peczenyj tiago.pecze...@gmail.com escreveu: RAM não necessariamente é RAM física. Conta SWAP e isso degrada performance pq é IO em disco. Em 15/04/2014 13:46, Stanislaw Pusep creakt...@gmail.com escreveu: Memória RAM é o limite. Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays 2014-04-15 18:33 GMT+02:00 Aureliano Guedes guedes_1...@hotmail.com: Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999); my $fim = 999; my @memo while ($fim != 100){ foreach (@ini){ my $m = $_ * $fim; push (@memo, $m); } $fim--; } } Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999. Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Array muito longo
Entendi. Obrigado. Tiago Peczenyj tiago.pecze...@gmail.com escreveu: Sim, mas ai você passa o Devel::NYTProf e estuda os gargalos, reduzido o IO ao máximo SE vc precisar. Em 15/04/2014 13:59, Aureliano Guedes guedes_1...@hotmail.com escreveu: Então. Eu queria evitar IO para nao perder em performance. Se eu usar um banco de dados ou cache nao sera um tipo de IO? Tiago Peczenyj tiago.pecze...@gmail.com escreveu: RAM não necessariamente é RAM física. Conta SWAP e isso degrada performance pq é IO em disco. Em 15/04/2014 13:46, Stanislaw Pusep creakt...@gmail.com escreveu: Memória RAM é o limite. Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays 2014-04-15 18:33 GMT+02:00 Aureliano Guedes guedes_1...@hotmail.com: Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999); my $fim = 999; my @memo while ($fim != 100){ foreach (@ini){ my $m = $_ * $fim; push (@memo, $m); } $fim--; } } Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999. Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Array muito longo
vc testou ao menos: https://gist.github.com/peczenyj/10749501 aqui rodou de boa e consumiu quase nada 2014-04-15 14:03 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Entendi. Obrigado. Tiago Peczenyj tiago.pecze...@gmail.com escreveu: Sim, mas ai você passa o Devel::NYTProf e estuda os gargalos, reduzido o IO ao máximo SE vc precisar. Em 15/04/2014 13:59, Aureliano Guedes guedes_1...@hotmail.com escreveu: Então. Eu queria evitar IO para nao perder em performance. Se eu usar um banco de dados ou cache nao sera um tipo de IO? Tiago Peczenyj tiago.pecze...@gmail.com escreveu: RAM não necessariamente é RAM física. Conta SWAP e isso degrada performance pq é IO em disco. Em 15/04/2014 13:46, Stanislaw Pusep creakt...@gmail.com escreveu: Memória RAM é o limite. Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays 2014-04-15 18:33 GMT+02:00 Aureliano Guedes guedes_1...@hotmail.com: Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999); my $fim = 999; my @memo while ($fim != 100){ foreach (@ini){ my $m = $_ * $fim; push (@memo, $m); } $fim--; } } Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999. Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Array muito longo
Tentei. Mas o pc que tava usando era um AMD Athon 1.6GHz 2gb RAM de 2007 forcadamente estrupado por um Windows 8.1 (Deus sabe porque fizeram isso). Depois tentei nesse servidor http://www.compileonline.com/execute_perl_online.php Tiago Peczenyj tiago.pecze...@gmail.com escreveu: vc testou ao menos: https://gist.github.com/peczenyj/10749501 aqui rodou de boa e consumiu quase nada 2014-04-15 14:03 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Entendi. Obrigado. Tiago Peczenyj tiago.pecze...@gmail.com escreveu: Sim, mas ai você passa o Devel::NYTProf e estuda os gargalos, reduzido o IO ao máximo SE vc precisar. Em 15/04/2014 13:59, Aureliano Guedes guedes_1...@hotmail.com escreveu: Então. Eu queria evitar IO para nao perder em performance. Se eu usar um banco de dados ou cache nao sera um tipo de IO? Tiago Peczenyj tiago.pecze...@gmail.com escreveu: RAM não necessariamente é RAM física. Conta SWAP e isso degrada performance pq é IO em disco. Em 15/04/2014 13:46, Stanislaw Pusep creakt...@gmail.com escreveu: Memória RAM é o limite. Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays 2014-04-15 18:33 GMT+02:00 Aureliano Guedes guedes_1...@hotmail.com: Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999); my $fim = 999; my @memo while ($fim != 100){ foreach (@ini){ my $m = $_ * $fim; push (@memo, $m); } $fim--; } } Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999. Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm