[SP-pm] duvida benchmark entre versões do mesmo modulo

Stanislaw Pusep creaktive at gmail.com
Fri May 10 18:55:20 PDT 2013


Benchmark::Forking em conjunto com Class::Load é uma alternativa válida.
O primeiro garante que versões distintas sejam rodadas em processos
distintos (e isolados). Já o segundo é um "eval { require ... }", só que
decente.
Imagino algo assim:

#!/usr/bin/env perl
use strict;
use utf8;
use warnings qw(all);

use Benchmark::Forking qw(cmpthese);
use Class::Load qw(load_class);

my $loaded = 0;
my $run = sub {
    unless ($loaded++) {
        unshift @INC => shift;
        load_class('My::Module');
    }
    My::Module::stuff_to_benchmark();
};

my $tests = {
    v1 => sub { $run->('v1/lib') },
    v2 => sub { $run->('v2/lib') },
};

cmpthese(5_000 => $tests);


ABS()


2013/5/10 Tiago Peczenyj <tiago.peczenyj em gmail.com>

> Opa pessoal
>
> estou com o seguinte problema: eu tenho uma versão X de um módulo. Eis que
> eu fiz pequenas alterações e criei uma versão Y. Como eu posso comparar
> ambos no mesmo teste.
>
> Assim
>
> cmpthese(
>     5_000,{
>     "versao x" => sub { $client_x->foo() },
>     "versao y" => sub { $client_y->foo() },
> });
>
> tem uma forma? ou eu deveria fazer os testes separados na mesma maquina e
> comparar (uma pegando do diretorio x e a outra do y)?
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://about.me/peczenyj
>
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130510/85e3d01d/attachment.html>


More information about the SaoPaulo-pm mailing list