[SP-pm] ordenando arquivos.

Marcio Ferreira marciodesouzaferreira at gmail.com
Tue Jul 26 08:42:37 PDT 2011


Qual a demanda em que os arquivos são gerados ?

É possivel trabalhar com subdiretórios (tipo mini-CPAN) no momento de gerar
os arquivos ?

Recentemente fiz isso em um projeto que são gerados 15k ~ 30k arquivos/dia,
com picos de 100k e foi tranquilo.
Quebrei em ddmmyyyy/HH/min, se apertasse mais iria
para ddmmyyyy/HH/min/seg.
Mas depende em qual demanda os arquivos são gerados.

[]s,

@_marcioferreira
Marcio Ferreira
marciodesouzaferreira.blogspot.com

"Perl lives as the 'toolbox for Unix' "



2011/7/26 Andre Carneiro <andregarciacarneiro at gmail.com>

> Salve!
>
> Tenho que ordenar 3 milhões de arquivos de um diretório(e isso tende a
> aumentar). Mesmo que eu mova parte dos arquivos para outros diretórios,
> ainda assim vai sobrar arquivo pra caramba.
>
> Desse modo, eu pesquisei no perlmonks e outros lugares, e achei esse código
> abaixo que até resolveria, se não fosse o problema de memória, pois usa uma
> quantidade de memória proporcional a quantidade de arquivos.
>
>
> <code>
>
> #!/usr/bin/perl
>
> use strict;
> use warnings;
> use DateTime;
>
> my $start_time = time;
>
> my %times = ();
>
> opendir DIR, $ARGV[0] or die "Couldn't open $ARGV[0]; $!\n";
>
> my @sorted =
> sort {
>     $times{$b} cmp $times{$a}; # Was cmp D'oh! Thanks [dws]
> }
> map {
> $times{$_} = (stat $_)[9]; $_;
> } readdir DIR;
>
> closedir DIR or warn "Couldn't close $ARGV[0]; $!\n";
> local $" = $/;
> print "@sorted\n";
>
> my $end_time = time;
>
> my $enlapsed_time = $end_time - $start_time;
>
> my $dt = DateTime->from_epoch( epoch => $enlapsed_time );
>
> my $etime = $dt->hms(':');
>
> print "\nCrapy time: $etime\n";
>
> </code>
>
> Alguém conhece um algoritmo onde, sei lá, eu pudesse ordernar parte desses
> arquivos  e de depois juntar tudo de alguma forma, ou algo desse tipo?
>
> Thx!
>
>
> --
> André Garcia Carneiro
> Analista/Desenvolvedor Perl
> (11)82907780
>
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110726/e697d09f/attachment.html>


More information about the SaoPaulo-pm mailing list