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 <[email protected]> > 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: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > >
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
