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 )