鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

Mojolicous+Teng SQLが遅いのではなくて、コネクションコストか?

Plack::Middleware::Profiler::NYTProfを使い、ボトルネックをしらべてみた。

f:id:kechiya:20140317215338p:plain

SQL発行の所が顕著に遅いことがわかったけれど、その前のコネクションのところっぽい。

MojoliciousのヘルパーでTengのオブジェクトを作っているのだけど、 ぷーリングみたいなことをした方がいいのかな?

   $self->helper( db => sub { Twien::DB->new( $config->{db} ) } );

なんとなく、これと同じことをMojoliciousでやればよさそうな気がする。

http://hirobanex.net/article/2011/09/1316055740

Mojoliciousのアプリケーションコンテキスト$selfにTengのオブジェクトを保存しておきたいのだけど、どうするんだろう。

ドキュメントのhelperのところにstateってでてくるけどこれはなんだろう。 http://mojolicio.us/perldoc/Mojolicious#helper

とりあえずこんな感じにしたらいいんじゃ?

  $self->helper( db => sub { 
    state $teng = Twien::DB->new( $config->{db} );
    return $teng;
    } );

<<追記予定!>>