[SP-pm] TRNGs com Rand

Stanislaw Pusep creaktive at gmail.com
Sun Nov 7 06:26:18 PST 2010


Temos também o Inline::CPP (
http://search.cpan.org/~shassan/Inline-CPP/lib/Inline/CPP.pod)!

ABS()



2010/11/6 Renato Santos <renato.cron em gmail.com>

> ThannkS! Devo aprender a fazer extensões em XS
>
> O q acho meio chato, e q precisa ser em c puro, sem c++.
> Ou, criar uma lib em c++ e um link com C e um Xx pra perl.
>
> Em nov 6, 2010 11:05 PM, "Stanislaw Pusep" <creaktive em gmail.com>escreveu:
>
>
> List::Util wins, flawless victory!
> (resultado para um array de 100 elementos)
>
>                     Rate alg_num_shuffle pusep   map sort fisher_yates
> list_util
> alg_num_shuffle  10104/s              --   -1%   -2% -18%         -19%
> -91%
> pusep            10172/s              1%    --   -2% -18%         -18%
> -90%
> map              10342/s              2%    2%    -- -16%         -17%
> -90%
> sort             12332/s             22%   21%   19%   --          -1%
> -88%
> fisher_yates     12458/s             23%   22%   20%   1%           --
> -88%
> list_util       106762/s            957%  950%  932% 766%
> 757%        --
>
> Aliás, aquele código que postei inicialmente era uma variante do algoritmo
> de Fisher-Yates (http://en.wikipedia.org/wiki/Fisher-Yates) que fiz em 2
> minutos. Refiz decentemente e teve uma melhoria significativa. O que salva a
> minha reputação é que o Algorithm::Numerical::Shuffle traz uma outra
> implementação do mesmíssimo algoritmo e ainda assim é capenga... Muita
> coragem para publicar no CPAN, hein :)
> "map" e "sort" são gambiarras one-liners. O engraçado é que shuffle via
> sort é bem mais eficiente do que os outros (menos o List::Util que é XS)
> para arrays pequenos (10 elementos):
>
>                     Rate pusep alg_num_shuffle   map fisher_yates sort
> list_util
> pusep            92304/s    --             -1%   -7%         -16% -54%
> -89%
> alg_num_shuffle  92781/s    1%              --   -6%         -15% -54%
> -89%
> map              99073/s    7%              7%    --         -10% -51%
> -88%
> fisher_yates    109484/s   19%             18%   11%           -- -46%
> -87%
> sort            202283/s  119%            118%  104%          85%   --
> -76%
> list_util       838226/s  808%            803%  746%         666%
> 314%        --
>
> E aqui está o código do benchmark: http://tinypaste.com/f989dd
>
> ABS()
>
> 2010/11/6 Renato Santos <renato.cron em gmail.com> > > Preciso ao menos
> comparar com a solução do P...
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20101107/069d7280/attachment.html>


More information about the SaoPaulo-pm mailing list