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でプロファイリング。)とかで追い込んでいく。