RE: Programa extremadamente lento
> -----Mensaje original-----
> De: Rodrigo Gallardo [mailto:rodrigo@nul-unu.com]
> Enviado el: martes, 03 de febrero de 2009 18:09
> Para: Gorka
> CC: debian-user-spanish@lists.debian.org
> Asunto: Re: Programa extremadamente lento
>
> On Tue, Feb 03, 2009 at 05:47:14PM +0100, Gorka wrote:
> > Hola.
> >
> > Tengo un script de perl con este bucle:
> >
> > for (my $j=0;$j<=$#fichero1;$j++)
> > {
> > if (@fichero1[$j] eq $valor1)
> > {
> > $token = 1;
> > }
> > }
> >
> > El problema es que fichero1 tiene 32 millones de registros y que,
> además,
> > tengo que hacer este bucle millones de veces, por lo que he calculado
> que me
> > tardaría AÑOS en acabar.
>
> ¿Qué pretendes hacer en ese bucle? ¿Simplemente ver si en $valor está
> en @fichero? En tal caso, mejor usa algo como grep (la función en
> perl, no el binario en shell). O, si el orden no es muy importante,
> guarda todo @fichero en un hash, en lugar de en un arreglo.
>
> Por otra parte, ¿en última instancia qué resultado estas esperando? A
> menos que estés haciendo cómputo científico, es probable que tu
> problema no *necesite* hacer tantos bucles. Quizá te convenga
> detenerte a pensar un poco y replantear tu algoritmo desde un nivel
> más alto, antes de hacer optimización de bajo nivel en los bucles.
>
Hola, Rodrigo, ...
Como me han recomendado, continúo este hilo como OT bajo el asunto:
[OT]Re: Programa extremadamente lento
Nos leemos ahí.
Reply to: