Class-Accessor-Lazy
view release on metacpan or search on metacpan
lib/Class/Accessor/Lazy.pm view on Meta::CPAN
Same as C<mk_accessors>, but creating lazy ones.
=head2 mk_lazy_ro_accessors
Same as C<mk_ro_accessors>, but creating lazy ones.
=head1 BENCHMARKING
Accessors benchmark:
Benchmark: timing 20000000 iterations of Acessor, AcessorF, Direct, Lazy, LazyF...
Acessor: 12 wallclock secs (11.34 usr + 0.00 sys = 11.34 CPU) @ 1763512.92/s (n=20000000)
AcessorF: 6 wallclock secs ( 5.71 usr + 0.00 sys = 5.71 CPU) @ 3502626.97/s (n=20000000)
Direct: 1 wallclock secs ( 0.78 usr + 0.00 sys = 0.78 CPU) @ 25641025.64/s (n=20000000)
Lazy: 14 wallclock secs (13.85 usr + 0.00 sys = 13.85 CPU) @ 1443730.60/s (n=20000000)
LazyF: 9 wallclock secs ( 8.71 usr + 0.00 sys = 8.71 CPU) @ 2297530.16/s (n=20000000)
Mutators benchmark:
Benchmark: timing 20000000 iterations of Acessor, AcessorF, Direct, Lazy, LazyF...
Acessor: 16 wallclock secs (15.26 usr + 0.00 sys = 15.26 CPU) @ 1310959.62/s (n=20000000)
AcessorF: 8 wallclock secs ( 7.91 usr + 0.00 sys = 7.91 CPU) @ 2528764.70/s (n=20000000)
Direct: 2 wallclock secs ( 1.50 usr + 0.00 sys = 1.50 CPU) @ 13351134.85/s (n=20000000)
Lazy: 19 wallclock secs (18.83 usr + 0.00 sys = 18.83 CPU) @ 1062191.30/s (n=20000000)
LazyF: 9 wallclock secs (10.53 usr + 0.00 sys = 10.53 CPU) @ 1899335.23/s (n=20000000)
Direct means direct access to the object property, and F suffix means using C<fast_accessors>.
=head1 BUGS AND IMPROVEMENTS
( run in 2.249 seconds using v1.01-cache-2.11-cpan-71847e10f99 )