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

use strict;

our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2024-05-06'; # DATE
our $DIST = 'Bencher-ScenarioBundle-Accessors'; # DIST
our $VERSION = '0.151'; # 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.151 of Bencher::Scenario::Accessors::ClassStartup (from Perl distribution Bencher-ScenarioBundle-Accessors), released on 2024-05-06.

=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.68

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.005005

L<Moops> 0.038

L<Moos> 0.30

L<Moose> 2.2206

L<Mouse> v2.5.10

L<Object::Pad> 0.806

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::ClassTiny (perl_code)

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



=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::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                        |    190    |            183.22 |                 0.00% |              2630.85% |   0.00019 |      20 |
 | Perl::Examples::Accessors::Moose                        |    140    |            133.22 |                32.49% |              1961.14% | 9.8e-05   |      20 |
 | Perl::Examples::Accessors::MojoBase                     |    113    |            106.22 |                63.34% |              1571.86% | 5.4e-05   |      20 |
 | Perl::Examples::Accessors::Moo                          |     27    |             20.22 |               594.64% |               293.13% | 3.1e-05   |      20 |
 | Perl::Examples::Accessors::Mouse                        |     26.3  |             19.52 |               604.02% |               287.90% | 9.7e-06   |      21 |
 | Perl::Examples::Accessors::ObjectPad                    |     19.8  |             13.02 |               836.44% |               191.62% | 1.2e-05   |      20 |
 | Perl::Examples::Accessors::Moos                         |     19.5  |             12.72 |               847.95% |               188.08% | 1.6e-05   |      20 |
 | Perl::Examples::Accessors::ClassInsideOut               |     17.6  |             10.82 |               954.08% |               159.07% | 1.4e-05   |      22 |
 | Perl::Examples::Accessors::ClassStruct                  |     14.7  |              7.92 |              1163.69% |               116.10% | 1.2e-05   |      20 |
 | Perl::Examples::Accessors::ClassXSAccessor              |     14    |              7.22 |              1193.45% |               111.13% | 5.7e-05   |      20 |
 | Perl::Examples::Accessors::ObjectSimple                 |     14.2  |              7.42 |              1199.96% |               110.07% | 1.3e-05   |      20 |
 | Perl::Examples::Accessors::ClassXSAccessorArray         |     14.2  |              7.42 |              1200.15% |               110.04% | 1.2e-05   |      20 |
 | Perl::Examples::Accessors::ClassTiny                    |     14.2  |              7.42 |              1206.46% |               109.03% | 1.1e-05   |      20 |
 | Perl::Examples::Accessors::ObjectTinyXS                 |     14.1  |              7.32 |              1210.62% |               108.36% | 1.2e-05   |      20 |
 | Perl::Examples::Accessors::ObjectTinyRWXS               |     14.1  |              7.32 |              1211.54% |               108.22% | 1.2e-05   |      20 |
 | Perl::Examples::Accessors::ClassAccessor                |     14    |              7.22 |              1219.06% |               107.03% | 1.9e-05   |      24 |
 | Perl::Examples::Accessors::MojoBaseXS                   |     11    |              4.22 |              1618.77% |                58.88% | 1.2e-05   |      20 |
 | Perl::Examples::Accessors::SimpleAccessor               |      9.63 |              2.85 |              1824.14% |                41.93% | 7.8e-06   |      20 |
 | Perl::Examples::Accessors::ClassAccessorPackedString    |      9.3  |              2.52 |              1883.66% |                37.67% | 1.4e-05   |      20 |
 | Perl::Examples::Accessors::Mo                           |      9.1  |              2.32 |              1934.31% |                34.24% | 9.4e-06   |      20 |
 | Perl::Examples::Accessors::ObjectTinyRW                 |      7.63 |              0.85 |              2327.99% |                12.47% | 5.5e-06   |      20 |
 | Perl::Examples::Accessors::ObjectTiny                   |      7.57 |              0.79 |              2346.32% |                11.63% | 3.4e-06   |      20 |
 | Perl::Examples::Accessors::ClassAccessorPackedStringSet |      7.5  |              0.72 |              2374.96% |                10.34% | 7.8e-06   |      20 |
 | Perl::Examples::Accessors::ClassAccessorArray           |      7.3  |              0.52 |              2423.40% |                 8.22% | 1.1e-05   |      20 |
 | Perl::Examples::Accessors::Hash                         |      7    |              0.22 |              2539.45% |                 3.46% | 1.4e-05   |      20 |
 | Perl::Examples::Accessors::Array                        |      6.98 |              0.2  |              2554.45% |                 2.88% | 5.1e-06   |      20 |
 | Perl::Examples::Accessors::Scalar                       |      6.91 |              0.13 |              2581.65% |                 1.83% | 4.2e-06   |      20 |
 | perl -e1 (baseline)                                     |      6.78 |              0    |              2630.85% |                 0.00% | 4.9e-06   |      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::ObjectPad  Perl::Examples::Accessors::Moos  Perl::Examples::Accessors::ClassInsideOut  Perl::Examples::Accessors::ClassStruct  Perl::Examples::Accessors::ObjectSimple  Perl::Examples::Accessors::ClassXSAccessorArray  Perl::Examples::Accessors::ClassTiny  Perl::Examples::Accessors::ObjectTinyXS  Perl::Examples::Accessors::ObjectTinyRWXS  Perl::Examples::Accessors::ClassXSAccessor  Perl::Examples::Accessors::ClassAccessor  Perl::Examples::Accessors::MojoBaseXS  Perl::Examples::Accessors::SimpleAccessor  Perl::Examples::Accessors::ClassAccessorPackedString  Perl::Examples::Accessors::Mo  Perl::Examples::Accessors::ObjectTinyRW  Perl::Examples::Accessors::ObjectTiny  Perl::Examples::Accessors::ClassAccessorPackedStringSet  Perl::Examples::Accessors::ClassAccessorArray  Perl::Examples::Accessors::Hash  Perl::Examples::Accessors::Array  Perl::Examples::Accessors::Scalar  perl -e1 (baseline) 
  Perl::Examples::Accessors::Moops                           5.3/s                                --                              -26%                                 -40%                            -85%                              -86%                                  -89%                             -89%                                       -90%                                    -92%                                     -92%                                             -92%                                  -92%                                     -92%                                       -92%                                        -92%                                      -92%                                   -94%                                       -94%                                                  -95%                           -95%                                     -95%                                   -96%                                                     -96%                                           -96%                             -96%                              -96%                               -96%                 -96% 
  Perl::Examples::Accessors::Moose                           7.1/s                               35%                                --                                 -19%                            -80%                              -81%                                  -85%                             -86%                                       -87%                                    -89%                                     -89%                                             -89%                                  -89%                                     -89%                                       -89%                                        -90%                                      -90%                                   -92%                                       -93%                                                  -93%                           -93%                                     -94%                                   -94%                                                     -94%                                           -94%                             -95%                              -95%                               -95%                 -95% 
  Perl::Examples::Accessors::MojoBase                        8.8/s                               68%                               23%                                   --                            -76%                              -76%                                  -82%                             -82%                                       -84%                                    -86%                                     -87%                                             -87%                                  -87%                                     -87%                                       -87%                                        -87%                                      -87%                                   -90%                                       -91%                                                  -91%                           -91%                                     -93%                                   -93%                                                     -93%                                           -93%                             -93%                              -93%                               -93%                 -94% 
  Perl::Examples::Accessors::Moo                            37.0/s                              603%                              418%                                 318%                              --                               -2%                                  -26%                             -27%                                       -34%                                    -45%                                     -47%                                             -47%                                  -47%                                     -47%                                       -47%                                        -48%                                      -48%                                   -59%                                       -64%                                                  -65%                           -66%                                     -71%                                   -71%                                                     -72%                                           -72%                             -74%                              -74%                               -74%                 -74% 
  Perl::Examples::Accessors::Mouse                          38.0/s                              622%                              432%                                 329%                              2%                                --                                  -24%                             -25%                                       -33%                                    -44%                                     -46%                                             -46%                                  -46%                                     -46%                                       -46%                                        -46%                                      -46%                                   -58%                                       -63%                                                  -64%                           -65%                                     -70%                                   -71%                                                     -71%                                           -72%                             -73%                              -73%                               -73%                 -74% 
  Perl::Examples::Accessors::ObjectPad                      50.5/s                              859%                              607%                                 470%                             36%                               32%                                    --                              -1%                                       -11%                                    -25%                                     -28%                                             -28%                                  -28%                                     -28%                                       -28%                                        -29%                                      -29%                                   -44%                                       -51%                                                  -53%                           -54%                                     -61%                                   -61%                                                     -62%                                           -63%                             -64%                              -64%                               -65%                 -65% 
  Perl::Examples::Accessors::Moos                           51.3/s                              874%                              617%                                 479%                             38%                               34%                                    1%                               --                                        -9%                                    -24%                                     -27%                                             -27%                                  -27%                                     -27%                                       -27%                                        -28%                                      -28%                                   -43%                                       -50%                                                  -52%                           -53%                                     -60%                                   -61%                                                     -61%                                           -62%                             -64%                              -64%                               -64%                 -65% 
  Perl::Examples::Accessors::ClassInsideOut                 56.8/s                              979%                              695%                                 542%                             53%                               49%                                   12%                              10%                                         --                                    -16%                                     -19%                                             -19%                                  -19%                                     -19%                                       -19%                                        -20%                                      -20%                                   -37%                                       -45%                                                  -47%                           -48%                                     -56%                                   -56%                                                     -57%                                           -58%                             -60%                              -60%                               -60%                 -61% 
  Perl::Examples::Accessors::ClassStruct                    68.0/s                             1192%                              852%                                 668%                             83%                               78%                                   34%                              32%                                        19%                                      --                                      -3%                                              -3%                                   -3%                                      -4%                                        -4%                                         -4%                                       -4%                                   -25%                                       -34%                                                  -36%                           -38%                                     -48%                                   -48%                                                     -48%                                           -50%                             -52%                              -52%                               -52%                 -53% 
  Perl::Examples::Accessors::ObjectSimple                   70.4/s                             1238%                              885%                                 695%                             90%                               85%                                   39%                              37%                                        23%                                      3%                                       --                                               0%                                    0%                                       0%                                         0%                                         -1%                                       -1%                                   -22%                                       -32%                                                  -34%                           -35%                                     -46%                                   -46%                                                     -47%                                           -48%                             -50%                              -50%                               -51%                 -52% 
  Perl::Examples::Accessors::ClassXSAccessorArray           70.4/s                             1238%                              885%                                 695%                             90%                               85%                                   39%                              37%                                        23%                                      3%                                       0%                                               --                                    0%                                       0%                                         0%                                         -1%                                       -1%                                   -22%                                       -32%                                                  -34%                           -35%                                     -46%                                   -46%                                                     -47%                                           -48%                             -50%                              -50%                               -51%                 -52% 
  Perl::Examples::Accessors::ClassTiny                      70.4/s                             1238%                              885%                                 695%                             90%                               85%                                   39%                              37%                                        23%                                      3%                                       0%                                               0%                                    --                                       0%                                         0%                                         -1%                                       -1%                                   -22%                                       -32%                                                  -34%                           -35%                                     -46%                                   -46%                                                     -47%                                           -48%                             -50%                              -50%                               -51%                 -52% 
  Perl::Examples::Accessors::ObjectTinyXS                   70.9/s                             1247%                              892%                                 701%                             91%                               86%                                   40%                              38%                                        24%                                      4%                                       0%                                               0%                                    0%                                       --                                         0%                                          0%                                        0%                                   -21%                                       -31%                                                  -34%                           -35%                                     -45%                                   -46%                                                     -46%                                           -48%                             -50%                              -50%                               -50%                 -51% 
  Perl::Examples::Accessors::ObjectTinyRWXS                 70.9/s                             1247%                              892%                                 701%                             91%                               86%                                   40%                              38%                                        24%                                      4%                                       0%                                               0%                                    0%                                       0%                                         --                                          0%                                        0%                                   -21%                                       -31%                                                  -34%                           -35%                                     -45%                                   -46%                                                     -46%                                           -48%                             -50%                              -50%                               -50%                 -51% 
  Perl::Examples::Accessors::ClassXSAccessor                71.4/s                             1257%                              900%                                 707%                             92%                               87%                                   41%                              39%                                        25%                                      5%                                       1%                                               1%                                    1%                                       0%                                         0%                                          --                                        0%                                   -21%                                       -31%                                                  -33%                           -35%                                     -45%                                   -45%                                                     -46%                                           -47%                             -50%                              -50%                               -50%                 -51% 
  Perl::Examples::Accessors::ClassAccessor                  71.4/s                             1257%                              900%                                 707%                             92%                               87%                                   41%                              39%                                        25%                                      5%                                       1%                                               1%                                    1%                                       0%                                         0%                                          0%                                        --                                   -21%                                       -31%                                                  -33%                           -35%                                     -45%                                   -45%                                                     -46%                                           -47%                             -50%                              -50%                               -50%                 -51% 
  Perl::Examples::Accessors::MojoBaseXS                     90.9/s                             1627%                             1172%                                 927%                            145%                              139%                                   80%                              77%                                        60%                                     33%                                      29%                                              29%                                   29%                                      28%                                        28%                                         27%                                       27%                                     --                                       -12%                                                  -15%                           -17%                                     -30%                                   -31%                                                     -31%                                           -33%                             -36%                              -36%                               -37%                 -38% 
  Perl::Examples::Accessors::SimpleAccessor                103.8/s                             1873%                             1353%                                1073%                            180%                              173%                                  105%                             102%                                        82%                                     52%                                      47%                                              47%                                   47%                                      46%                                        46%                                         45%                                       45%                                    14%                                         --                                                   -3%                            -5%                                     -20%                                   -21%                                                     -22%                                           -24%                             -27%                              -27%                               -28%                 -29% 
  Perl::Examples::Accessors::ClassAccessorPackedString     107.5/s                             1943%                             1405%                                1115%                            190%                              182%                                  112%                             109%                                        89%                                     58%                                      52%                                              52%                                   52%                                      51%                                        51%                                         50%                                       50%                                    18%                                         3%                                                    --                            -2%                                     -17%                                   -18%                                                     -19%                                           -21%                             -24%                              -24%                               -25%                 -27% 
  Perl::Examples::Accessors::Mo                            109.9/s                             1987%                             1438%                                1141%                            196%                              189%                                  117%                             114%                                        93%                                     61%                                      56%                                              56%                                   56%                                      54%                                        54%                                         53%                                       53%                                    20%                                         5%                                                    2%                             --                                     -16%                                   -16%                                                     -17%                                           -19%                             -23%                              -23%                               -24%                 -25% 
  Perl::Examples::Accessors::ObjectTinyRW                  131.1/s                             2390%                             1734%                                1380%                            253%                              244%                                  159%                             155%                                       130%                                     92%                                      86%                                              86%                                   86%                                      84%                                        84%                                         83%                                       83%                                    44%                                        26%                                                   21%                            19%                                       --                                     0%                                                      -1%                                            -4%                              -8%                               -8%                                -9%                 -11% 
  Perl::Examples::Accessors::ObjectTiny                    132.1/s                             2409%                             1749%                                1392%                            256%                              247%                                  161%                             157%                                       132%                                     94%                                      87%                                              87%                                   87%                                      86%                                        86%                                         84%                                       84%                                    45%                                        27%                                                   22%                            20%                                       0%                                     --                                                       0%                                            -3%                              -7%                               -7%                                -8%                 -10% 
  Perl::Examples::Accessors::ClassAccessorPackedStringSet  133.3/s                             2433%                             1766%                                1406%                            260%                              250%                                  164%                             160%                                       134%                                     96%                                      89%                                              89%                                   89%                                      87%                                        87%                                         86%                                       86%                                    46%                                        28%                                                   24%                            21%                                       1%                                     0%                                                       --                                            -2%                              -6%                               -6%                                -7%                  -9% 
  Perl::Examples::Accessors::ClassAccessorArray            137.0/s                             2502%                             1817%                                1447%                            269%                              260%                                  171%                             167%                                       141%                                    101%                                      94%                                              94%                                   94%                                      93%                                        93%                                         91%                                       91%                                    50%                                        31%                                                   27%                            24%                                       4%                                     3%                                                       2%                                             --                              -4%                               -4%                                -5%                  -7% 
  Perl::Examples::Accessors::Hash                          142.9/s                             2614%                             1900%                                1514%                            285%                              275%                                  182%                             178%                                       151%                                    110%                                     102%                                             102%                                  102%                                     101%                                       101%                                        100%                                      100%                                    57%                                        37%                                                   32%                            30%                                       9%                                     8%                                                       7%                                             4%                               --                                0%                                -1%                  -3% 
  Perl::Examples::Accessors::Array                         143.3/s                             2622%                             1905%                                1518%                            286%                              276%                                  183%                             179%                                       152%                                    110%                                     103%                                             103%                                  103%                                     102%                                       102%                                        100%                                      100%                                    57%                                        37%                                                   33%                            30%                                       9%                                     8%                                                       7%                                             4%                               0%                                --                                -1%                  -2% 
  Perl::Examples::Accessors::Scalar                        144.7/s                             2649%                             1926%                                1535%                            290%                              280%                                  186%                             182%                                       154%                                    112%                                     105%                                             105%                                  105%                                     104%                                       104%                                        102%                                      102%                                    59%                                        39%                                                   34%                            31%                                      10%                                     9%                                                       8%                                             5%                               1%                                1%                                 --                  -1% 
  perl -e1 (baseline)                                      147.5/s                             2702%                             1964%                                1566%                            298%                              287%                                  192%                             187%                                       159%                                    116%                                     109%                                             109%                                  109%                                     107%                                       107%                                        106%                                      106%                                    62%                                        42%                                                   37%                            34%                                      12%                                    11%                                                      10%                                             7%                               3%                                2%                                 1%                   -- 
 
 Legends:
   Perl::Examples::Accessors::Array: mod_overhead_time=0.2 participant=Perl::Examples::Accessors::Array
   Perl::Examples::Accessors::ClassAccessor: mod_overhead_time=7.22 participant=Perl::Examples::Accessors::ClassAccessor
   Perl::Examples::Accessors::ClassAccessorArray: mod_overhead_time=0.52 participant=Perl::Examples::Accessors::ClassAccessorArray
   Perl::Examples::Accessors::ClassAccessorPackedString: mod_overhead_time=2.52 participant=Perl::Examples::Accessors::ClassAccessorPackedString
   Perl::Examples::Accessors::ClassAccessorPackedStringSet: mod_overhead_time=0.72 participant=Perl::Examples::Accessors::ClassAccessorPackedStringSet
   Perl::Examples::Accessors::ClassInsideOut: mod_overhead_time=10.82 participant=Perl::Examples::Accessors::ClassInsideOut
   Perl::Examples::Accessors::ClassStruct: mod_overhead_time=7.92 participant=Perl::Examples::Accessors::ClassStruct
   Perl::Examples::Accessors::ClassTiny: mod_overhead_time=7.42 participant=Perl::Examples::Accessors::ClassTiny
   Perl::Examples::Accessors::ClassXSAccessor: mod_overhead_time=7.22 participant=Perl::Examples::Accessors::ClassXSAccessor
   Perl::Examples::Accessors::ClassXSAccessorArray: mod_overhead_time=7.42 participant=Perl::Examples::Accessors::ClassXSAccessorArray
   Perl::Examples::Accessors::Hash: mod_overhead_time=0.22 participant=Perl::Examples::Accessors::Hash
   Perl::Examples::Accessors::Mo: mod_overhead_time=2.32 participant=Perl::Examples::Accessors::Mo
   Perl::Examples::Accessors::MojoBase: mod_overhead_time=106.22 participant=Perl::Examples::Accessors::MojoBase
   Perl::Examples::Accessors::MojoBaseXS: mod_overhead_time=4.22 participant=Perl::Examples::Accessors::MojoBaseXS
   Perl::Examples::Accessors::Moo: mod_overhead_time=20.22 participant=Perl::Examples::Accessors::Moo
   Perl::Examples::Accessors::Moops: mod_overhead_time=183.22 participant=Perl::Examples::Accessors::Moops
   Perl::Examples::Accessors::Moos: mod_overhead_time=12.72 participant=Perl::Examples::Accessors::Moos
   Perl::Examples::Accessors::Moose: mod_overhead_time=133.22 participant=Perl::Examples::Accessors::Moose
   Perl::Examples::Accessors::Mouse: mod_overhead_time=19.52 participant=Perl::Examples::Accessors::Mouse
   Perl::Examples::Accessors::ObjectPad: mod_overhead_time=13.02 participant=Perl::Examples::Accessors::ObjectPad
   Perl::Examples::Accessors::ObjectSimple: mod_overhead_time=7.42 participant=Perl::Examples::Accessors::ObjectSimple
   Perl::Examples::Accessors::ObjectTiny: mod_overhead_time=0.79 participant=Perl::Examples::Accessors::ObjectTiny
   Perl::Examples::Accessors::ObjectTinyRW: mod_overhead_time=0.85 participant=Perl::Examples::Accessors::ObjectTinyRW
   Perl::Examples::Accessors::ObjectTinyRWXS: mod_overhead_time=7.32 participant=Perl::Examples::Accessors::ObjectTinyRWXS
   Perl::Examples::Accessors::ObjectTinyXS: mod_overhead_time=7.32 participant=Perl::Examples::Accessors::ObjectTinyXS
   Perl::Examples::Accessors::Scalar: mod_overhead_time=0.13 participant=Perl::Examples::Accessors::Scalar
   Perl::Examples::Accessors::SimpleAccessor: mod_overhead_time=2.85 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-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>

=head1 CONTRIBUTING


To contribute, you can send patches by email/via RT, or send pull requests on
GitHub.

Most of the time, you don't need to build the distribution yourself. You can
simply modify the code, then test via:

 % prove -l

If you want to build the distribution (e.g. to try to install it locally on your
system), you can install L<Dist::Zilla>,
L<Dist::Zilla::PluginBundle::Author::PERLANCAR>,
L<Pod::Weaver::PluginBundle::Author::PERLANCAR>, and sometimes one or two other
Dist::Zilla- and/or Pod::Weaver plugins. Any additional steps required beyond
that are considered a bug and can be reported to me.

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2024, 2017, 2016 by perlancar <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.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Bencher-ScenarioBundle-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.

=cut
