[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: