12:29 Yappo: これ
12:30 Yappo: __PACKAGE__->load_components(qw/Plaggerize Autocall::InjectMethod/);
12:30 Yappo: を
12:30 Yappo: __PACKAGE__->load_components(qw/DisableDynamicPlugin Plaggerize Autocall::InjectMethod/);
12:30 Yappo: にしたら速くなるかも

ということでしてみたら盛大にテストがこけて吹いた。pluginの読み込み方が変わるんだな。ということで動くようにしよう。

Class::Component::Component::Plaggerize::PluginLoaderが

sub setup_plugins {
    my $self = shift;

    my @plugins;
    my $plugin_list = $self->conf->{global}->{pluginloader}->{plugin_list};
    for my $plugin (@{ $self->conf->{$plugin_list} }) {
        push @plugins, { module => $plugin->{module}, config => $plugin };
    }
    $self->load_plugins(@plugins);

    $self->NEXT( setup_plugins => @_ );
}

としていて、Class::Component::Component::Disableが

sub load_plugins {
    my($class, @plugins) = @_;
    return if ref($class);

    Class::Component::Implement->load_plugins_default($class, @plugins);
    for my $plugin (@plugins) {
        Class::Component::Implement->_load_plugin($class, $plugin);
    }
}

となっているので、$self->load_pluginsしていてさようならか。むむむ。まぁ、DisableDynamicPluginsって言ってる訳でそりゃそうだよな。

http://tech.yappo.jp/docs/soozycon2/ お。ここに。

ということで結局こんな感じでインスタンスを作る前にload_pluginsせよということでこうなった。 http://coderepos.org/share/changeset/19223

sub new {
    my $class = shift;
    my $args = $_[0];
    my $config = $class->setup_config( $args->{config} );

    my @plugins;
    my $plugin_list = $config->{global}->{pluginloader}->{plugin_list};
    for my $plugin (@{ $config->{$plugin_list} }) {
        push @plugins, { module => $plugin->{module}, config => $plugin };
    }

    if (my $path = $config->{global}{plugin_path}) {
        my $collect = Module::Collect->new(
            path => $path,
            pattern => '*.pm',
            prefix => 'App::Hachero::Plugin',
        );
        $packages_from_plugin_path = $collect->modules;
    }

    $class->load_plugins(@plugins);

    my $self = $class->SUPER::new(@_);
    $self->result({});
    $context = $self;
    $self;
}

なんかもりもりコードコピペしてて恥ずかしいけど、まあこういうことみたい。インターフェイスも変えずに済んだのでテストもそのまま。あふぅ。 ほんで速くなったんだろうか。しらべよう。