[Rio-pm] Performance

Lucas Mateus lucasmateus.oliveira em gmail.com
Sexta Fevereiro 20 09:09:14 PST 2009


Estou em uma situação prática em que tenho um ARRAY com 750.000 itens,  
cada item deve se submeter a 60 RegExp, obtendo match faço um next.

Os dois codigos abaixo (o mais simples que consegui representar) fazem a  
mesma coisa, porem o EXEMPLO_1 tem performance extremamente inferior que o  
EXEMPLO_2.

Gostaria de saber dos Mongers justificativa para isso. Seria a RegExp  
dinâmica ?



EXEMPLO_1
[code]

my @re;    # lista de RegExp 60 itens
my @paths; # lista de Paths 750.000 itens

foreach my $path (@paths)
{
    map
    {
       if ($path =~ /^$_$/)
       {
           next;
       }
    } @re
}

[/code]





EXEMPLO_2
[code]
my @paths; # lista de Paths 750.000 itens

foreach my $path (@paths)
{
    next if ($path =~ /^regex_1$/);
    next if ($path =~ /^regex_2$/);
    next if ($path =~ /^regex_3$/);
    next if ($path =~ /^regex_4$/);
    .
    .
    .
    next if ($path =~ /^regex_60$/);
}

[/code]




-- 
Lucas Mateus
Núcleo de Páginas Rápidas e SEO
Fone: 55 11 3065-9978
MSN: lucasmateus_777 em hotmail.com


Mais detalhes sobre a lista de discussão Rio-pm