Amon2で実行時間を測定する。
2014年12月15日
自分の環境だと、$c->stash(Amon2で$c->stashを使う。)が使えるようになってるんで、そこにdispatch前の時間を保存して、dispatch後に差を見れば何秒かかったかわかる。
package MyApp::Web; use parent qw/MyApp Amon2::Web/; use Time::HiRes qw/gettimeofday tv_interval/; __PACKAGE__->add_trigger( BEFORE_DISPATCH => sub { my $c = shift; $c->stash->{'start'} = [gettimeofday]; }, AFTER_DISPATCH => sub { my ( $c, $res ) = @_; $c->log->debug( 'total_time:' . tv_interval( $c->stash->{'start'} ) ); } );
で、ページにアクセスしてみて他に比べて時間かかってるなーってとこがあったら、NYTProf(Plack::Middleware::Profiler::NYTProfでプロファイリング。)とかで追い込んでいく。