Catalyst で setup にかかった時間を表示する
Catalyst はデフォルトでリクエスト毎の処理時間をログ出力してくれますが、setup() 時の処理時間は表示してくれません。チューニングの目安として見たいので実装してみました。
Upgrading to Catalyst 5.80 で紹介されている、setup の hook point を使います。
package MyApp; use Moose; use Catalyst::Runtime 5.80; use Catalyst; use Time::HiRes; extends 'Catalyst'; our $StartedOn; BEGIN { $StartedOn = Time::HiRes::time; } after setup_finalize => sub { my $c = shift; $c->log->info(sprintf 'Setup took %0.6fs', Time::HiRes::time - $StartedOn ); $c->log->_flush; # これがないと1回目のリクエストまで出力されない }; __PACKAGE__->setup(qw/ -Debug /); __PACKAGE__->meta->make_immutable;
こんな感じで表示されます。本家でも表示してくれるといいですね。
[info] MyApp powered by Catalyst 5.80007 [info] Setup took 0.656298s FastCGI: manager (pid 23210): initialized FastCGI: manager (pid 23210): server (pid 23211) started FastCGI: server (pid 23211): initialized