[Cascavel-pm] get/set com AUTOLOAD

Nilson Santos Figueiredo Junior acid06 em gmail.com
Quinta Dezembro 29 04:20:05 PST 2005


On 12/29/05, Joenio Marques <joenio em gmail.com> wrote:
> é mesmo bem mais lento? humm... nao sabia nao!
> vou dar uma olhada no Class::Accessor.

Bem, o Class::Accessor propriamente dito é algo em torno de 50% mais
rápido, porém o Class::Accessor::Fast é quase 3 vezes mais rápido.

Eu acabei de fazer um pequeno benchmark de testes, os resultados foram:
------------------------
Benchmark: timing 200000 iterations of AUTOLOAD, Acessores manuais,
Class::Accessor, Class::Accessor::Fast...

AUTOLOAD:  5 wallclock secs ( 5.00 usr +  0.01 sys =  5.01 CPU) @
39920.16/s (n=200000)
Acessores manuais:  1 wallclock secs ( 2.09 usr +  0.00 sys =  2.09
CPU) @ 95693.78/s (n=200000)
Class::Accessor:  4 wallclock secs ( 3.74 usr +  0.00 sys =  3.74 CPU)
@ 53475.94/s (n=200000)
Class::Accessor::Fast:  2 wallclock secs ( 1.85 usr +  0.00 sys = 
1.85 CPU) @ 108108.11/s (n=200000)
------------------------
Por algum motivo, além da minha compreensão, o Class::Accessor::Fast
foi *mais rápido* que os métodos acessores que eu criei manualmente.
Quem quiser dar uma olhada no código que utilizei para benchmark, está
como attachment.

-Nilson Santos F. Jr.
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : benchacc.pl
Tipo  : application/x-perl
Tam   : 1349 bytes
Descr.: não disponível
Url   : http://mail.pm.org/pipermail/cascavel-pm/attachments/20051229/63ffc780/benchacc.bin


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