Hola Luis, primero que nada agradezco tu tiempo por probarlo y por venir a
responderme :-D  ...como dije anteriormente soy muy nuevo....voy a revisar
eso porq la verdad es que si veo la ineficiencia de los algoritmos...me
gustaría saber como usar el ruby-prof para poder testear todo eso yo mismo
sin tener que joder por aca para q lo prueben.

Voy a leer la alternativa a FileRead supuse que eso era lo q me estaba
matando :P  ...pero no se como "leer" de una manera menos costosa los
archivos, por lo cual voy a ver chuncks como me dijiste y el update al MD5.

Cambiaría el método entonces por una lista global como  me aconsejas.

Pruebo y veo que onda...

Nuevamente.. mil gracias!!

On 9/1/07, Luis Lavena <[EMAIL PROTECTED]> wrote:
>
> On 9/1/07, Martin Sagastume <[EMAIL PROTECTED]> wrote:
> > Masomenos ya esta terminado...solo un pequeño problema jajaj demora mas
> de
> > 15 minutos en scannear mi carpeta personal /home/martin  y encima se re
> > funde el micro..no puedo hacer mas nada!!!  Siempre me canso y mato el
> > proceso ruby antes de dejarlo terminar...mi notebook es un celeron M de
> > 1.43ghz con 1GB DDR ...estaría bueno que alguien lo pruebe, es demasiado
> > ineficiente esto jeje
> >
>
> Martin, aunque en mi maquina (Windows) no se produce esto (por alguna
> razon el GC es mas eficiente) te hago unas sugerencias.
>
> Ya que podes encontrarte con archivos gigantezcos, te recomiendo no
> hagas File.read(), sino busques una alternativa streamlined.
> (leer chuncks y usar #update de la clase MD5).
>
> Segun ruby-prof:
>
>   0.37      0.11     0.11     0.00     0.00
>     65730  <Class::File>#extname
>   0.05      0.02     0.02     0.00     0.00    74947  String#==
>
> 65730 llamadas a extname! eso si que es expensive (y otras tantas a
> #== de String).
>
> En lugar de construir la lista de extensiones validas, podrias:
>
> class Dupes
>   @@extensiones = %w{ .iso .img .mp3 .wav .wma .ogg .jpg .gif .png
> .jpeg .bmp .avi .mpg .wmv .cue .bin .rar .tar .jar .zip .7z .gz .bz2
> .cpkg .deb .rpm .pdf .spx .xcf .odt .rtf .odg .odp .ods .exe .msi .doc
> .pps .ppt .xls .nrg .tmp .dat .bak .sfv .m3u }
>
> y luego reemplazar todo el metodo esExtensionPermitida? por esto:
>
>   def esExtensionPermitida?(dir)
>     @@extensiones.include?(File.extname(dir))
>   end
>
> Voy a correr unos benchs cuando tenga un tiempito y tiro otras
> sugerencias.
>
> --
> Luis Lavena
> Multimedia systems
> -
> Leaders are made, they are not born. They are made by hard effort,
> which is the price which all of us must pay to achieve any goal that
> is worthwhile.
> Vince Lombardi
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>



-- 
Martín Sagastume
094-575846
Montevideo - Uruguay
http://musicapastillera.blogspot.com
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a