Eclesiastes

Ícone

Sobre o que é este blog? O.o

Benchmark em Perl

No Perl há o módulo Benchmark que nos permite executar códigos e compará-los em questão de processamento a outros, e na saída ainda temos um simples gráfico indicando a porcentagem de quão rápido um certo comando é em relação a cada participante do teste.

Veja um exemplo:

use Benchmark 'cmpthese';

my $str = "<a><b><c><d><a><b><c><d><a><b><c><d><a><b><c><d><a><b><c><d>";

cmpthese(-5, {

     a => sub { $str =~ /<[^>]*>/g },

     b => sub { $str =~ /<.*?>/g },

}, 'all');

Assim estamos comparando a execução das duas expressões regulares, cada um tendo um tempo mínimo de 5 segundos.

E temos a seguinte saída:

Benchmark: running a, b for at least 5 CPU seconds...
         a:  5 wallclock secs ( 5.38 usr -0.01 sys +  0.00 cusr  0.00 csys =  5.36 CPU) @ 544166.79/s (n=2916734)
         b:  6 wallclock secs ( 5.03 usr  0.00 sys +  0.00 cusr  0.00 csys =  5.03 CPU) @ 610819.36/s (n=3073643)
      Rate    a    b
a 544167/s   -- -11%
b 610819/s  12%   --

Ou seja, o código indicado pela letra b é 12% mais rápido que a, e b o inverso, obviamente. :)

Referência

Arquivado em:Perl

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: