package Bencher::Scenario::Accessors::ClassStartup;

our $DATE = '2021-08-03'; # DATE
our $VERSION = '0.150'; # VERSION

use Bencher::ScenarioUtil::Accessors;

my $classes = \%Bencher::ScenarioUtil::Accessors::classes;

our $scenario = {
    summary => 'Benchmark startup of classes using various accessor generators',
    module_startup => 1,
    modules => {
        # include the generator modules here so we can show their versions in
        # sample benchmark results produced by PWP:Bencher::Scenario
        (map { $_=>0 } grep {defined} map { $classes->{$_}{generator} }
             keys %$classes),
    },
    participants => [
        map {
            #my $spec = $classes->{$_};
            +{ module=>$_ };
        } keys %$classes,
    ],
};

1;
# ABSTRACT: Benchmark startup of classes using various accessor generators

__END__

=pod

=encoding UTF-8

=head1 NAME

Bencher::Scenario::Accessors::ClassStartup - Benchmark startup of classes using various accessor generators

=head1 VERSION

This document describes version 0.150 of Bencher::Scenario::Accessors::ClassStartup (from Perl distribution Bencher-Scenarios-Accessors), released on 2021-08-03.

=head1 SYNOPSIS

To run benchmark with default option:

 % bencher -m Accessors::ClassStartup

For more options (dump scenario, list/include/exclude/add participants, list/include/exclude/add datasets, etc), see L<bencher> or run C<bencher --help>.

=head1 DESCRIPTION

Packaging a benchmark script as a Bencher scenario makes it convenient to include/exclude/add participants/datasets (either via CLI or Perl code), send the result to a central repository, among others . See L<Bencher> and L<bencher> (CLI) for more details.

=head1 BENCHMARKED MODULES

Version numbers shown below are the versions used when running the sample benchmark.

L<Class::Accessor> 0.51

L<Class::Accessor::Array> 0.032

L<Class::Accessor::PackedString> 0.001

L<Class::Accessor::PackedString::Set> 0.001

L<Class::InsideOut> 1.14

L<Class::Struct> 0.66

L<Class::Tiny> 1.008

L<Class::XSAccessor> 1.19

L<Class::XSAccessor::Array> 1.19

L<Mo> 0.40

L<Mojo::Base>

L<Mojo::Base::XS> 0.07

L<Moo> 2.004004

L<Moops> 0.038

L<Moos> 0.30

L<Moose> 2.2015

L<Mouse> v2.5.10

L<Object::Pad> 0.46

L<Object::Simple> 3.19

L<Object::Tiny> 1.09

L<Object::Tiny::RW> 1.07

L<Object::Tiny::RW::XS> 0.04

L<Object::Tiny::XS> 1.01

L<Perl::Examples::Accessors::Array> 0.132

L<Perl::Examples::Accessors::ClassAccessor> 0.132

L<Perl::Examples::Accessors::ClassAccessorArray> 0.132

L<Perl::Examples::Accessors::ClassAccessorPackedString> 0.132

L<Perl::Examples::Accessors::ClassAccessorPackedStringSet> 0.132

L<Perl::Examples::Accessors::ClassInsideOut> 0.132

L<Perl::Examples::Accessors::ClassStruct> 0.132

L<Perl::Examples::Accessors::ClassTiny> 0.132

L<Perl::Examples::Accessors::ClassXSAccessor> 0.132

L<Perl::Examples::Accessors::ClassXSAccessorArray> 0.132

L<Perl::Examples::Accessors::Hash> 0.132

L<Perl::Examples::Accessors::Mo> 0.132

L<Perl::Examples::Accessors::MojoBase> 0.132

L<Perl::Examples::Accessors::MojoBaseXS> 0.132

L<Perl::Examples::Accessors::Moo> 0.132

L<Perl::Examples::Accessors::Moops> 0.132

L<Perl::Examples::Accessors::Moos> 0.132

L<Perl::Examples::Accessors::Moose> 0.132

L<Perl::Examples::Accessors::Mouse> 0.132

L<Perl::Examples::Accessors::ObjectPad> 0.132

L<Perl::Examples::Accessors::ObjectSimple> 0.132

L<Perl::Examples::Accessors::ObjectTiny> 0.132

L<Perl::Examples::Accessors::ObjectTinyRW> 0.132

L<Perl::Examples::Accessors::ObjectTinyRWXS> 0.132

L<Perl::Examples::Accessors::ObjectTinyXS> 0.132

L<Perl::Examples::Accessors::Scalar> 0.132

L<Perl::Examples::Accessors::SimpleAccessor> 0.132

L<Simple::Accessor> 1.13

=head1 BENCHMARK PARTICIPANTS

=over

=item * Perl::Examples::Accessors::ClassAccessorPackedString (perl_code)

L<Perl::Examples::Accessors::ClassAccessorPackedString>



=item * Perl::Examples::Accessors::ClassAccessorArray (perl_code)

L<Perl::Examples::Accessors::ClassAccessorArray>



=item * Perl::Examples::Accessors::MojoBase (perl_code)

L<Perl::Examples::Accessors::MojoBase>



=item * Perl::Examples::Accessors::ObjectTiny (perl_code)

L<Perl::Examples::Accessors::ObjectTiny>



=item * Perl::Examples::Accessors::SimpleAccessor (perl_code)

L<Perl::Examples::Accessors::SimpleAccessor>



=item * Perl::Examples::Accessors::ObjectTinyRW (perl_code)

L<Perl::Examples::Accessors::ObjectTinyRW>



=item * Perl::Examples::Accessors::Moose (perl_code)

L<Perl::Examples::Accessors::Moose>



=item * Perl::Examples::Accessors::Scalar (perl_code)

L<Perl::Examples::Accessors::Scalar>



=item * Perl::Examples::Accessors::Moos (perl_code)

L<Perl::Examples::Accessors::Moos>



=item * Perl::Examples::Accessors::ObjectPad (perl_code)

L<Perl::Examples::Accessors::ObjectPad>



=item * Perl::Examples::Accessors::ObjectTinyXS (perl_code)

L<Perl::Examples::Accessors::ObjectTinyXS>



=item * Perl::Examples::Accessors::Mouse (perl_code)

L<Perl::Examples::Accessors::Mouse>



=item * Perl::Examples::Accessors::Mo (perl_code)

L<Perl::Examples::Accessors::Mo>



=item * Perl::Examples::Accessors::ObjectSimple (perl_code)

L<Perl::Examples::Accessors::ObjectSimple>



=item * Perl::Examples::Accessors::Moops (perl_code)

L<Perl::Examples::Accessors::Moops>



=item * Perl::Examples::Accessors::ClassStruct (perl_code)

L<Perl::Examples::Accessors::ClassStruct>



=item * Perl::Examples::Accessors::ClassXSAccessor (perl_code)

L<Perl::Examples::Accessors::ClassXSAccessor>



=item * Perl::Examples::Accessors::ObjectTinyRWXS (perl_code)

L<Perl::Examples::Accessors::ObjectTinyRWXS>



=item * Perl::Examples::Accessors::Array (perl_code)

L<Perl::Examples::Accessors::Array>



=item * Perl::Examples::Accessors::Moo (perl_code)

L<Perl::Examples::Accessors::Moo>



=item * Perl::Examples::Accessors::ClassInsideOut (perl_code)

L<Perl::Examples::Accessors::ClassInsideOut>



=item * Perl::Examples::Accessors::MojoBaseXS (perl_code)

L<Perl::Examples::Accessors::MojoBaseXS>



=item * Perl::Examples::Accessors::ClassAccessor (perl_code)

L<Perl::Examples::Accessors::ClassAccessor>



=item * Perl::Examples::Accessors::ClassTiny (perl_code)

L<Perl::Examples::Accessors::ClassTiny>



=item * Perl::Examples::Accessors::Hash (perl_code)

L<Perl::Examples::Accessors::Hash>



=item * Perl::Examples::Accessors::ClassAccessorPackedStringSet (perl_code)

L<Perl::Examples::Accessors::ClassAccessorPackedStringSet>



=item * Perl::Examples::Accessors::ClassXSAccessorArray (perl_code)

L<Perl::Examples::Accessors::ClassXSAccessorArray>



=back

=head1 BENCHMARK SAMPLE RESULTS

=head2 Sample benchmark #1

Run on: perl: I<< v5.34.0 >>, CPU: I<< Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz (4 cores) >>, OS: I<< GNU/Linux LinuxMint version 19 >>, OS kernel: I<< Linux version 5.3.0-68-generic >>.

Benchmark command (default options):

 % bencher -m Accessors::ClassStartup

Result formatted as table:

 #table1#
 +---------------------------------------------------------+-----------+-------------------+-----------------------+-----------------------+-----------+---------+
 | participant                                             | time (ms) | mod_overhead_time | pct_faster_vs_slowest | pct_slower_vs_fastest |  errors   | samples |
 +---------------------------------------------------------+-----------+-------------------+-----------------------+-----------------------+-----------+---------+
 | Perl::Examples::Accessors::Moops                        |     140   |             135   |                 0.00% |              2751.06% |   0.0011  |      20 |
 | Perl::Examples::Accessors::Moose                        |     120   |             115   |                24.45% |              2190.99% |   0.00054 |      20 |
 | Perl::Examples::Accessors::MojoBase                     |      90   |              85   |                60.80% |              1673.02% |   0.001   |      21 |
 | Perl::Examples::Accessors::Moo                          |      30   |              25   |               405.55% |               463.95% |   0.00056 |      20 |
 | Perl::Examples::Accessors::Mouse                        |      20   |              15   |               579.46% |               319.60% |   0.00022 |      21 |
 | Perl::Examples::Accessors::ClassInsideOut               |      20   |              15   |               770.63% |               227.47% |   0.00025 |      20 |
 | Perl::Examples::Accessors::Moos                         |      16   |              11   |               809.64% |               213.43% |   0.00015 |      20 |
 | Perl::Examples::Accessors::ObjectPad                    |      20   |              15   |               830.32% |               206.46% |   0.00017 |      20 |
 | Perl::Examples::Accessors::ClassTiny                    |      10   |               5   |               976.04% |               164.96% |   0.0002  |      20 |
 | Perl::Examples::Accessors::ClassXSAccessorArray         |      10   |               5   |              1005.80% |               157.83% |   0.00019 |      20 |
 | Perl::Examples::Accessors::ObjectTinyRWXS               |      10   |               5   |              1021.40% |               154.24% |   0.00019 |      20 |
 | Perl::Examples::Accessors::ObjectTinyXS                 |      10   |               5   |              1088.28% |               139.93% |   0.00016 |      20 |
 | Perl::Examples::Accessors::ClassXSAccessor              |      10   |               5   |              1088.63% |               139.86% |   0.00026 |      20 |
 | Perl::Examples::Accessors::ClassStruct                  |      10   |               5   |              1118.95% |               133.89% |   0.00022 |      20 |
 | Perl::Examples::Accessors::ClassAccessor                |      10   |               5   |              1123.35% |               133.05% |   0.00013 |      20 |
 | Perl::Examples::Accessors::ObjectSimple                 |      10   |               5   |              1166.35% |               125.14% |   0.00014 |      20 |
 | Perl::Examples::Accessors::MojoBaseXS                   |      10   |               5   |              1348.32% |                96.85% |   0.00028 |      20 |
 | Perl::Examples::Accessors::SimpleAccessor               |       8   |               3   |              1632.60% |                64.55% |   0.0002  |      22 |
 | Perl::Examples::Accessors::ClassAccessorPackedString    |       8.2 |               3.2 |              1660.36% |                61.96% | 8.1e-05   |      22 |
 | Perl::Examples::Accessors::ClassAccessorPackedStringSet |       7   |               2   |              1982.56% |                36.90% |   0.00013 |      20 |
 | Perl::Examples::Accessors::ObjectTinyRW                 |       7   |               2   |              2107.67% |                29.14% | 9.3e-05   |      20 |
 | Perl::Examples::Accessors::ObjectTiny                   |       7   |               2   |              2120.42% |                28.40% |   0.00014 |      20 |
 | Perl::Examples::Accessors::Mo                           |       6   |               1   |              2149.49% |                26.74% |   0.00013 |      20 |
 | Perl::Examples::Accessors::ClassAccessorArray           |       6   |               1   |              2213.42% |                23.24% |   0.00015 |      20 |
 | Perl::Examples::Accessors::Array                        |       6   |               1   |              2243.23% |                21.67% |   0.00013 |      21 |
 | Perl::Examples::Accessors::Scalar                       |       5   |               0   |              2548.51% |                 7.65% |   0.00015 |      21 |
 | Perl::Examples::Accessors::Hash                         |       5   |               0   |              2564.36% |                 7.01% |   0.00015 |      20 |
 | perl -e1 (baseline)                                     |       5   |               0   |              2751.06% |                 0.00% |   0.00018 |      20 |
 +---------------------------------------------------------+-----------+-------------------+-----------------------+-----------------------+-----------+---------+


The above result formatted in L<Benchmark.pm|Benchmark> style:

                                                              Rate  Perl::Examples::Accessors::Moops  Perl::Examples::Accessors::Moose  Perl::Examples::Accessors::MojoBase  Perl::Examples::Accessors::Moo  Perl::Examples::Accessors::Mouse  Perl::Examples::Accessors::ClassInsideOut  Perl::Examples::Accessors::ObjectPad  Perl::Examples::Accessors::Moos  Perl::Examples::Accessors::ClassTiny  Perl::Examples::Accessors::ClassXSAccessorArray  Perl::Examples::Accessors::ObjectTinyRWXS  Perl::Examples::Accessors::ObjectTinyXS  Perl::Examples::Accessors::ClassXSAccessor  Perl::Examples::Accessors::ClassStruct  Perl::Examples::Accessors::ClassAccessor  Perl::Examples::Accessors::ObjectSimple  Perl::Examples::Accessors::MojoBaseXS  Perl::Examples::Accessors::ClassAccessorPackedString  Perl::Examples::Accessors::SimpleAccessor  Perl::Examples::Accessors::ClassAccessorPackedStringSet  Perl::Examples::Accessors::ObjectTinyRW  Perl::Examples::Accessors::ObjectTiny  Perl::Examples::Accessors::Mo  Perl::Examples::Accessors::ClassAccessorArray  Perl::Examples::Accessors::Array  Perl::Examples::Accessors::Scalar  Perl::Examples::Accessors::Hash  perl -e1 (baseline) 
  Perl::Examples::Accessors::Moops                           7.1/s                                --                              -14%                                 -35%                            -78%                              -85%                                       -85%                                  -85%                             -88%                                  -92%                                             -92%                                       -92%                                     -92%                                        -92%                                    -92%                                      -92%                                     -92%                                   -92%                                                  -94%                                       -94%                                                     -95%                                     -95%                                   -95%                           -95%                                           -95%                              -95%                               -96%                             -96%                 -96% 
  Perl::Examples::Accessors::Moose                           8.3/s                               16%                                --                                 -25%                            -75%                              -83%                                       -83%                                  -83%                             -86%                                  -91%                                             -91%                                       -91%                                     -91%                                        -91%                                    -91%                                      -91%                                     -91%                                   -91%                                                  -93%                                       -93%                                                     -94%                                     -94%                                   -94%                           -95%                                           -95%                              -95%                               -95%                             -95%                 -95% 
  Perl::Examples::Accessors::MojoBase                       11.1/s                               55%                               33%                                   --                            -66%                              -77%                                       -77%                                  -77%                             -82%                                  -88%                                             -88%                                       -88%                                     -88%                                        -88%                                    -88%                                      -88%                                     -88%                                   -88%                                                  -90%                                       -91%                                                     -92%                                     -92%                                   -92%                           -93%                                           -93%                              -93%                               -94%                             -94%                 -94% 
  Perl::Examples::Accessors::Moo                            33.3/s                              366%                              300%                                 200%                              --                              -33%                                       -33%                                  -33%                             -46%                                  -66%                                             -66%                                       -66%                                     -66%                                        -66%                                    -66%                                      -66%                                     -66%                                   -66%                                                  -72%                                       -73%                                                     -76%                                     -76%                                   -76%                           -80%                                           -80%                              -80%                               -83%                             -83%                 -83% 
  Perl::Examples::Accessors::Mouse                          50.0/s                              600%                              500%                                 350%                             50%                                --                                         0%                                    0%                             -19%                                  -50%                                             -50%                                       -50%                                     -50%                                        -50%                                    -50%                                      -50%                                     -50%                                   -50%                                                  -59%                                       -60%                                                     -65%                                     -65%                                   -65%                           -70%                                           -70%                              -70%                               -75%                             -75%                 -75% 
  Perl::Examples::Accessors::ClassInsideOut                 50.0/s                              600%                              500%                                 350%                             50%                                0%                                         --                                    0%                             -19%                                  -50%                                             -50%                                       -50%                                     -50%                                        -50%                                    -50%                                      -50%                                     -50%                                   -50%                                                  -59%                                       -60%                                                     -65%                                     -65%                                   -65%                           -70%                                           -70%                              -70%                               -75%                             -75%                 -75% 
  Perl::Examples::Accessors::ObjectPad                      50.0/s                              600%                              500%                                 350%                             50%                                0%                                         0%                                    --                             -19%                                  -50%                                             -50%                                       -50%                                     -50%                                        -50%                                    -50%                                      -50%                                     -50%                                   -50%                                                  -59%                                       -60%                                                     -65%                                     -65%                                   -65%                           -70%                                           -70%                              -70%                               -75%                             -75%                 -75% 
  Perl::Examples::Accessors::Moos                           62.5/s                              775%                              650%                                 462%                             87%                               25%                                        25%                                   25%                               --                                  -37%                                             -37%                                       -37%                                     -37%                                        -37%                                    -37%                                      -37%                                     -37%                                   -37%                                                  -48%                                       -50%                                                     -56%                                     -56%                                   -56%                           -62%                                           -62%                              -62%                               -68%                             -68%                 -68% 
  Perl::Examples::Accessors::ClassTiny                     100.0/s                             1300%                             1100%                                 800%                            200%                              100%                                       100%                                  100%                              60%                                    --                                               0%                                         0%                                       0%                                          0%                                      0%                                        0%                                       0%                                     0%                                                  -18%                                       -19%                                                     -30%                                     -30%                                   -30%                           -40%                                           -40%                              -40%                               -50%                             -50%                 -50% 
  Perl::Examples::Accessors::ClassXSAccessorArray          100.0/s                             1300%                             1100%                                 800%                            200%                              100%                                       100%                                  100%                              60%                                    0%                                               --                                         0%                                       0%                                          0%                                      0%                                        0%                                       0%                                     0%                                                  -18%                                       -19%                                                     -30%                                     -30%                                   -30%                           -40%                                           -40%                              -40%                               -50%                             -50%                 -50% 
  Perl::Examples::Accessors::ObjectTinyRWXS                100.0/s                             1300%                             1100%                                 800%                            200%                              100%                                       100%                                  100%                              60%                                    0%                                               0%                                         --                                       0%                                          0%                                      0%                                        0%                                       0%                                     0%                                                  -18%                                       -19%                                                     -30%                                     -30%                                   -30%                           -40%                                           -40%                              -40%                               -50%                             -50%                 -50% 
  Perl::Examples::Accessors::ObjectTinyXS                  100.0/s                             1300%                             1100%                                 800%                            200%                              100%                                       100%                                  100%                              60%                                    0%                                               0%                                         0%                                       --                                          0%                                      0%                                        0%                                       0%                                     0%                                                  -18%                                       -19%                                                     -30%                                     -30%                                   -30%                           -40%                                           -40%                              -40%                               -50%                             -50%                 -50% 
  Perl::Examples::Accessors::ClassXSAccessor               100.0/s                             1300%                             1100%                                 800%                            200%                              100%                                       100%                                  100%                              60%                                    0%                                               0%                                         0%                                       0%                                          --                                      0%                                        0%                                       0%                                     0%                                                  -18%                                       -19%                                                     -30%                                     -30%                                   -30%                           -40%                                           -40%                              -40%                               -50%                             -50%                 -50% 
  Perl::Examples::Accessors::ClassStruct                   100.0/s                             1300%                             1100%                                 800%                            200%                              100%                                       100%                                  100%                              60%                                    0%                                               0%                                         0%                                       0%                                          0%                                      --                                        0%                                       0%                                     0%                                                  -18%                                       -19%                                                     -30%                                     -30%                                   -30%                           -40%                                           -40%                              -40%                               -50%                             -50%                 -50% 
  Perl::Examples::Accessors::ClassAccessor                 100.0/s                             1300%                             1100%                                 800%                            200%                              100%                                       100%                                  100%                              60%                                    0%                                               0%                                         0%                                       0%                                          0%                                      0%                                        --                                       0%                                     0%                                                  -18%                                       -19%                                                     -30%                                     -30%                                   -30%                           -40%                                           -40%                              -40%                               -50%                             -50%                 -50% 
  Perl::Examples::Accessors::ObjectSimple                  100.0/s                             1300%                             1100%                                 800%                            200%                              100%                                       100%                                  100%                              60%                                    0%                                               0%                                         0%                                       0%                                          0%                                      0%                                        0%                                       --                                     0%                                                  -18%                                       -19%                                                     -30%                                     -30%                                   -30%                           -40%                                           -40%                              -40%                               -50%                             -50%                 -50% 
  Perl::Examples::Accessors::MojoBaseXS                    100.0/s                             1300%                             1100%                                 800%                            200%                              100%                                       100%                                  100%                              60%                                    0%                                               0%                                         0%                                       0%                                          0%                                      0%                                        0%                                       0%                                     --                                                  -18%                                       -19%                                                     -30%                                     -30%                                   -30%                           -40%                                           -40%                              -40%                               -50%                             -50%                 -50% 
  Perl::Examples::Accessors::ClassAccessorPackedString     122.0/s                             1607%                             1363%                                 997%                            265%                              143%                                       143%                                  143%                              95%                                   21%                                              21%                                        21%                                      21%                                         21%                                     21%                                       21%                                      21%                                    21%                                                    --                                        -2%                                                     -14%                                     -14%                                   -14%                           -26%                                           -26%                              -26%                               -39%                             -39%                 -39% 
  Perl::Examples::Accessors::SimpleAccessor                125.0/s                             1650%                             1400%                                1025%                            275%                              150%                                       150%                                  150%                             100%                                   25%                                              25%                                        25%                                      25%                                         25%                                     25%                                       25%                                      25%                                    25%                                                    2%                                         --                                                     -12%                                     -12%                                   -12%                           -25%                                           -25%                              -25%                               -37%                             -37%                 -37% 
  Perl::Examples::Accessors::ClassAccessorPackedStringSet  142.9/s                             1900%                             1614%                                1185%                            328%                              185%                                       185%                                  185%                             128%                                   42%                                              42%                                        42%                                      42%                                         42%                                     42%                                       42%                                      42%                                    42%                                                   17%                                        14%                                                       --                                       0%                                     0%                           -14%                                           -14%                              -14%                               -28%                             -28%                 -28% 
  Perl::Examples::Accessors::ObjectTinyRW                  142.9/s                             1900%                             1614%                                1185%                            328%                              185%                                       185%                                  185%                             128%                                   42%                                              42%                                        42%                                      42%                                         42%                                     42%                                       42%                                      42%                                    42%                                                   17%                                        14%                                                       0%                                       --                                     0%                           -14%                                           -14%                              -14%                               -28%                             -28%                 -28% 
  Perl::Examples::Accessors::ObjectTiny                    142.9/s                             1900%                             1614%                                1185%                            328%                              185%                                       185%                                  185%                             128%                                   42%                                              42%                                        42%                                      42%                                         42%                                     42%                                       42%                                      42%                                    42%                                                   17%                                        14%                                                       0%                                       0%                                     --                           -14%                                           -14%                              -14%                               -28%                             -28%                 -28% 
  Perl::Examples::Accessors::Mo                            166.7/s                             2233%                             1900%                                1400%                            400%                              233%                                       233%                                  233%                             166%                                   66%                                              66%                                        66%                                      66%                                         66%                                     66%                                       66%                                      66%                                    66%                                                   36%                                        33%                                                      16%                                      16%                                    16%                             --                                             0%                                0%                               -16%                             -16%                 -16% 
  Perl::Examples::Accessors::ClassAccessorArray            166.7/s                             2233%                             1900%                                1400%                            400%                              233%                                       233%                                  233%                             166%                                   66%                                              66%                                        66%                                      66%                                         66%                                     66%                                       66%                                      66%                                    66%                                                   36%                                        33%                                                      16%                                      16%                                    16%                             0%                                             --                                0%                               -16%                             -16%                 -16% 
  Perl::Examples::Accessors::Array                         166.7/s                             2233%                             1900%                                1400%                            400%                              233%                                       233%                                  233%                             166%                                   66%                                              66%                                        66%                                      66%                                         66%                                     66%                                       66%                                      66%                                    66%                                                   36%                                        33%                                                      16%                                      16%                                    16%                             0%                                             0%                                --                               -16%                             -16%                 -16% 
  Perl::Examples::Accessors::Scalar                        200.0/s                             2700%                             2300%                                1700%                            500%                              300%                                       300%                                  300%                             220%                                  100%                                             100%                                       100%                                     100%                                        100%                                    100%                                      100%                                     100%                                   100%                                                   63%                                        60%                                                      39%                                      39%                                    39%                            19%                                            19%                               19%                                 --                               0%                   0% 
  Perl::Examples::Accessors::Hash                          200.0/s                             2700%                             2300%                                1700%                            500%                              300%                                       300%                                  300%                             220%                                  100%                                             100%                                       100%                                     100%                                        100%                                    100%                                      100%                                     100%                                   100%                                                   63%                                        60%                                                      39%                                      39%                                    39%                            19%                                            19%                               19%                                 0%                               --                   0% 
  perl -e1 (baseline)                                      200.0/s                             2700%                             2300%                                1700%                            500%                              300%                                       300%                                  300%                             220%                                  100%                                             100%                                       100%                                     100%                                        100%                                    100%                                      100%                                     100%                                   100%                                                   63%                                        60%                                                      39%                                      39%                                    39%                            19%                                            19%                               19%                                 0%                               0%                   -- 
 
 Legends:
   Perl::Examples::Accessors::Array: mod_overhead_time=1 participant=Perl::Examples::Accessors::Array
   Perl::Examples::Accessors::ClassAccessor: mod_overhead_time=5 participant=Perl::Examples::Accessors::ClassAccessor
   Perl::Examples::Accessors::ClassAccessorArray: mod_overhead_time=1 participant=Perl::Examples::Accessors::ClassAccessorArray
   Perl::Examples::Accessors::ClassAccessorPackedString: mod_overhead_time=3.2 participant=Perl::Examples::Accessors::ClassAccessorPackedString
   Perl::Examples::Accessors::ClassAccessorPackedStringSet: mod_overhead_time=2 participant=Perl::Examples::Accessors::ClassAccessorPackedStringSet
   Perl::Examples::Accessors::ClassInsideOut: mod_overhead_time=15 participant=Perl::Examples::Accessors::ClassInsideOut
   Perl::Examples::Accessors::ClassStruct: mod_overhead_time=5 participant=Perl::Examples::Accessors::ClassStruct
   Perl::Examples::Accessors::ClassTiny: mod_overhead_time=5 participant=Perl::Examples::Accessors::ClassTiny
   Perl::Examples::Accessors::ClassXSAccessor: mod_overhead_time=5 participant=Perl::Examples::Accessors::ClassXSAccessor
   Perl::Examples::Accessors::ClassXSAccessorArray: mod_overhead_time=5 participant=Perl::Examples::Accessors::ClassXSAccessorArray
   Perl::Examples::Accessors::Hash: mod_overhead_time=0 participant=Perl::Examples::Accessors::Hash
   Perl::Examples::Accessors::Mo: mod_overhead_time=1 participant=Perl::Examples::Accessors::Mo
   Perl::Examples::Accessors::MojoBase: mod_overhead_time=85 participant=Perl::Examples::Accessors::MojoBase
   Perl::Examples::Accessors::MojoBaseXS: mod_overhead_time=5 participant=Perl::Examples::Accessors::MojoBaseXS
   Perl::Examples::Accessors::Moo: mod_overhead_time=25 participant=Perl::Examples::Accessors::Moo
   Perl::Examples::Accessors::Moops: mod_overhead_time=135 participant=Perl::Examples::Accessors::Moops
   Perl::Examples::Accessors::Moos: mod_overhead_time=11 participant=Perl::Examples::Accessors::Moos
   Perl::Examples::Accessors::Moose: mod_overhead_time=115 participant=Perl::Examples::Accessors::Moose
   Perl::Examples::Accessors::Mouse: mod_overhead_time=15 participant=Perl::Examples::Accessors::Mouse
   Perl::Examples::Accessors::ObjectPad: mod_overhead_time=15 participant=Perl::Examples::Accessors::ObjectPad
   Perl::Examples::Accessors::ObjectSimple: mod_overhead_time=5 participant=Perl::Examples::Accessors::ObjectSimple
   Perl::Examples::Accessors::ObjectTiny: mod_overhead_time=2 participant=Perl::Examples::Accessors::ObjectTiny
   Perl::Examples::Accessors::ObjectTinyRW: mod_overhead_time=2 participant=Perl::Examples::Accessors::ObjectTinyRW
   Perl::Examples::Accessors::ObjectTinyRWXS: mod_overhead_time=5 participant=Perl::Examples::Accessors::ObjectTinyRWXS
   Perl::Examples::Accessors::ObjectTinyXS: mod_overhead_time=5 participant=Perl::Examples::Accessors::ObjectTinyXS
   Perl::Examples::Accessors::Scalar: mod_overhead_time=0 participant=Perl::Examples::Accessors::Scalar
   Perl::Examples::Accessors::SimpleAccessor: mod_overhead_time=3 participant=Perl::Examples::Accessors::SimpleAccessor
   perl -e1 (baseline): mod_overhead_time=0 participant=perl -e1 (baseline)

The above result presented as chart:

=begin html

<img src="data:image/png;base64, " />

=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-Scenarios-Accessors>.

=head1 SOURCE

Source repository is at L<https://github.com/perlancar/perl-Bencher-Scenarios-Accessors>.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Bencher-Scenarios-Accessors>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=head1 SEE ALSO

=head1 AUTHOR

perlancar <perlancar@cpan.org>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2021, 2017, 2016 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut
