Bencher-ScenarioBundle-Accessors
view release on metacpan or search on metacpan
lib/Bencher/Scenario/Accessors/Construction.pm view on Meta::CPAN
=item * Object::Tiny (perl_code)
Code template:
Perl::Examples::Accessors::ObjectTiny->new
=item * Object::Pad (perl_code)
Code template:
Perl::Examples::Accessors::ObjectPad->new
=back
=head1 BENCHMARK SAMPLE RESULTS
=head2 Sample benchmark #1
Run on: perl: I<< v5.38.2 >>, CPU: I<< Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (2 cores) >>, OS: I<< GNU/Linux Ubuntu version 20.04 >>, OS kernel: I<< Linux version 5.4.0-164-generic >>.
Benchmark command (default options):
% bencher -m Accessors::Construction
Result formatted as table:
#table1#
+------------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
| participant | rate (/s) | time (μs) | pct_faster_vs_slowest | pct_slower_vs_fastest | errors | samples |
+------------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
| Moos | 144000 | 6.94 | 0.00% | 4396.84% | 2.9e-09 | 20 |
| Class::InsideOut | 370000 | 2.7 | 156.94% | 1650.13% | 3e-09 | 20 |
| Class::Tiny | 699000 | 1.43 | 385.20% | 826.80% | 5.8e-10 | 20 |
| Simple::Accessor | 818000 | 1.22 | 467.67% | 692.15% | 6.5e-10 | 20 |
| Moose | 842000 | 1.19 | 483.98% | 670.03% | 9.5e-10 | 20 |
| Class::Accessor::PackedString | 1290000 | 0.776 | 794.00% | 403.00% | 2.4e-10 | 21 |
| Mo | 1440000 | 0.696 | 897.14% | 350.97% | 1.2e-10 | 20 |
| Class::Struct | 1460000 | 0.683 | 916.14% | 342.54% | 1.7e-10 | 20 |
| Moo | 1540000 | 0.65 | 967.53% | 321.24% | 6.7e-11 | 20 |
| Moops | 1540000 | 0.648 | 971.26% | 319.77% | 1.6e-10 | 20 |
| Mouse | 2000000 | 0.5 | 1286.77% | 224.27% | 6.3e-10 | 20 |
| Object::Pad | 2040000 | 0.49 | 1314.94% | 217.81% | 9.1e-11 | 21 |
| Class::Accessor::Array | 2400000 | 0.416 | 1568.34% | 169.54% | 8.1e-11 | 23 |
| no generator (array-based) | 2820000 | 0.355 | 1854.28% | 130.10% | 6.4e-11 | 20 |
| Class::Accessor::PackedString::Set | 3280000 | 0.304 | 2179.37% | 97.28% | 8.6e-11 | 22 |
| no generator (scalar-based) | 3360000 | 0.298 | 2228.26% | 93.14% | 1.2e-10 | 25 |
| Mojo::Base | 3360000 | 0.298 | 2231.33% | 92.89% | 1e-10 | 21 |
| Object::Simple | 3380000 | 0.296 | 2241.97% | 92.01% | 4.2e-11 | 20 |
| Object::Tiny::RW | 3410000 | 0.293 | 2268.71% | 89.84% | 3.1e-11 | 20 |
| Object::Tiny | 3423000 | 0.2922 | 2274.98% | 89.34% | 2.3e-11 | 20 |
| no generator (hash-based) | 3450000 | 0.29 | 2294.83% | 87.77% | 6.6e-11 | 20 |
| Class::Accessor | 4240000 | 0.236 | 2841.29% | 52.89% | 6.3e-11 | 22 |
| Object::Tiny::RW::XS | 5800000 | 0.17 | 3916.96% | 11.95% | 2e-10 | 20 |
| Object::Tiny::XS | 5970000 | 0.167 | 4043.81% | 8.52% | 2.6e-11 | 20 |
| Class::XSAccessor | 6000000 | 0.167 | 4062.56% | 8.03% | 5.7e-11 | 21 |
| Mojo::Base::XS | 6010000 | 0.166 | 4069.72% | 7.85% | 4.2e-11 | 23 |
| Class::XSAccessor::Array | 6500000 | 0.15 | 4396.84% | 0.00% | 2e-10 | 20 |
+------------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
The above result formatted in L<Benchmark.pm|Benchmark> style:
Rate Moos Class::InsideOut Class::Tiny Simple::Accessor Moose Class::Accessor::PackedString Mo Class::Struct Moo Moops Mouse Object::Pad Class::Accessor::Array no generator (array-based) C...
Moos 144000/s -- -61% -79% -82% -82% -88% -89% -90% -90% -90% -92% -92% -94% -94% ...
Class::InsideOut 370000/s 157% -- -47% -54% -55% -71% -74% -74% -75% -76% -81% -81% -84% -86% ...
Class::Tiny 699000/s 385% 88% -- -14% -16% -45% -51% -52% -54% -54% -65% -65% -70% -75% ...
Simple::Accessor 818000/s 468% 121% 17% -- -2% -36% -42% -44% -46% -46% -59% -59% -65% -70% ...
Moose 842000/s 483% 126% 20% 2% -- -34% -41% -42% -45% -45% -57% -58% -65% -70% ...
Class::Accessor::PackedString 1290000/s 794% 247% 84% 57% 53% -- -10% -11% -16% -16% -35% -36% -46% -54% ...
Mo 1440000/s 897% 287% 105% 75% 70% 11% -- -1% -6% -6% -28% -29% -40% -48% ...
Class::Struct 1460000/s 916% 295% 109% 78% 74% 13% 1% -- -4% -5% -26% -28% -39% -48% ...
Moo 1540000/s 967% 315% 119% 87% 83% 19% 7% 5% -- 0% -23% -24% -36% -45% ...
Moops 1540000/s 970% 316% 120% 88% 83% 19% 7% 5% 0% -- -22% -24% -35% -45% ...
Mouse 2000000/s 1288% 440% 186% 144% 138% 55% 39% 36% 30% 29% -- -2% -16% -29% ...
Object::Pad 2040000/s 1316% 451% 191% 148% 142% 58% 42% 39% 32% 32% 2% -- -15% -27% ...
Class::Accessor::Array 2400000/s 1568% 549% 243% 193% 186% 86% 67% 64% 56% 55% 20% 17% -- -14% ...
no generator (array-based) 2820000/s 1854% 660% 302% 243% 235% 118% 96% 92% 83% 82% 40% 38% 17% -- ...
Class::Accessor::PackedString::Set 3280000/s 2182% 788% 370% 301% 291% 155% 128% 124% 113% 113% 64% 61% 36% 16% ...
no generator (scalar-based) 3360000/s 2228% 806% 379% 309% 299% 160% 133% 129% 118% 117% 67% 64% 39% 19% ...
Mojo::Base 3360000/s 2228% 806% 379% 309% 299% 160% 133% 129% 118% 117% 67% 64% 39% 19% ...
Object::Simple 3380000/s 2244% 812% 383% 312% 302% 162% 135% 130% 119% 118% 68% 65% 40% 19% ...
Object::Tiny::RW 3410000/s 2268% 821% 388% 316% 306% 164% 137% 133% 121% 121% 70% 67% 41% 21% ...
Object::Tiny 3423000/s 2275% 824% 389% 317% 307% 165% 138% 133% 122% 121% 71% 67% 42% 21% ...
no generator (hash-based) 3450000/s 2293% 831% 393% 320% 310% 167% 140% 135% 124% 123% 72% 68% 43% 22% ...
Class::Accessor 4240000/s 2840% 1044% 505% 416% 404% 228% 194% 189% 175% 174% 111% 107% 76% 50% ...
Object::Tiny::RW::XS 5800000/s 3982% 1488% 741% 617% 599% 356% 309% 301% 282% 281% 194% 188% 144% 108% ...
Object::Tiny::XS 5970000/s 4055% 1516% 756% 630% 612% 364% 316% 308% 289% 288% 199% 193% 149% 112% ...
Class::XSAccessor 6000000/s 4055% 1516% 756% 630% 612% 364% 316% 308% 289% 288% 199% 193% 149% 112% ...
Mojo::Base::XS 6010000/s 4080% 1526% 761% 634% 616% 367% 319% 311% 291% 290% 201% 195% 150% 113% ...
Class::XSAccessor::Array 6500000/s 4526% 1700% 853% 713% 693% 417% 363% 355% 333% 332% 233% 226% 177% 136% ...
Legends:
Class::Accessor: participant=Class::Accessor
Class::Accessor::Array: participant=Class::Accessor::Array
Class::Accessor::PackedString: participant=Class::Accessor::PackedString
Class::Accessor::PackedString::Set: participant=Class::Accessor::PackedString::Set
Class::InsideOut: participant=Class::InsideOut
Class::Struct: participant=Class::Struct
Class::Tiny: participant=Class::Tiny
Class::XSAccessor: participant=Class::XSAccessor
Class::XSAccessor::Array: participant=Class::XSAccessor::Array
Mo: participant=Mo
Mojo::Base: participant=Mojo::Base
Mojo::Base::XS: participant=Mojo::Base::XS
Moo: participant=Moo
Moops: participant=Moops
Moos: participant=Moos
Moose: participant=Moose
Mouse: participant=Mouse
Object::Pad: participant=Object::Pad
Object::Simple: participant=Object::Simple
Object::Tiny: participant=Object::Tiny
Object::Tiny::RW: participant=Object::Tiny::RW
Object::Tiny::RW::XS: participant=Object::Tiny::RW::XS
Object::Tiny::XS: participant=Object::Tiny::XS
Simple::Accessor: participant=Simple::Accessor
no generator (array-based): participant=no generator (array-based)
no generator (hash-based): participant=no generator (hash-based)
no generator (scalar-based): participant=no generator (scalar-based)
The above result presented as chart:
=begin html
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtAAAAH4CAMAAABUnipoAAAJJmlDQ1BpY2MAAEiJlZVnUJNZF8fv8zzphUASQodQQ5EqJYCUEFoo0quoQOidUEVsiLgCK4qINEWQRQEXXJUia0UUC4uCAhZ0gywCyrpxFVFBWXDfGZ33HT+8/5l7z2/+c+bec8/5cAEgiINlwct7YlK6wNvJjhkYFMwE3yiMn5...
=end html
To display as an interactive HTML table on a browser, you can add option C<--format html+datatables>.
=head1 HOMEPAGE
Please visit the project's homepage at L<https://metacpan.org/release/Bencher-ScenarioBundle-Accessors>.
=head1 SOURCE
Source repository is at L<https://github.com/perlancar/perl-Bencher-Scenarios-Accessors>.
=head1 SEE ALSO
=head1 AUTHOR
perlancar <perlancar@cpan.org>
( run in 1.378 second using v1.01-cache-2.11-cpan-788537b7465 )