[Cascavel-pm] get/set com AUTOLOAD
Alceu R. de Freitas Jr.
glasswalk3r em yahoo.com.br
Segunda Janeiro 2 03:48:57 PST 2006
Oi monges,
Ainda vão meus dois centavos. Eu repeti os testes num
computador rodando Windows 2000 e Active Perl 5.8.7:
---
Benchmark: timing 200000 iterations of AUTOLOAD,
Acessores manuais, Class::Accessor,
Class::Accessor::Fast...
AUTOLOAD: 4 wallclock secs ( 4.25 usr + 0.00 sys =
4.25 CPU) @ 47103.16/s (n=200000)
Acessores manuais: 3 wallclock secs ( 2.32 usr +
0.00 sys = 2.32 CPU) @ 86058.52/s (n=200000)
Class::Accessor: 4 wallclock secs ( 3.71 usr + 0.00
sys = 3.71 CPU) @ 53966.54/s (n=200000)
Class::Accessor::Fast: 2 wallclock secs ( 2.13 usr +
0.00 sys = 2.13 CPU) @ 93764.65/s (n=200000)
---
Mesma máquina, mas com Cygwin e Perl 5.8.6:
---
Benchmark: timing 200000 iterations of AUTOLOAD,
Acessores manuais, Class::Accessor,
Class::Accessor::Fast...
AUTOLOAD: 4 wallclock secs ( 4.25 usr + 0.00 sys =
4.25 CPU) @ 47103.16/s (n=200000)
Acessores manuais: 3 wallclock secs ( 2.32 usr +
0.00 sys = 2.32 CPU) @ 86058.52/s (n=200000)
Class::Accessor: 4 wallclock secs ( 3.71 usr + 0.00
sys = 3.71 CPU) @ 53966.54/s (n=200000)
Class::Accessor::Fast: 2 wallclock secs ( 2.13 usr +
0.00 sys = 2.13 CPU) @ 93764.65/s (n=200000)
---
[]'s
Alceu
--- Nilson Santos Figueiredo Junior <acid06 em gmail.com>
escreveu:
> 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.
Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r em yahoo.com.br
http://www.imortais.cjb.net
-----------------------------------------------------------------------
A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.
These are great mysteries -- The Tao Of Programming, 5.1
_______________________________________________________
Yahoo! doce lar. Faça do Yahoo! sua homepage.
http://br.yahoo.com/homepageset.html
Mais detalhes sobre a lista de discussão Cascavel-pm