タグ

ブックマーク / bayashi.net (2)

  • Plack アプリのプロファイリング by Devel::NYTProf

    特に、Plack アプリに限定する話でもない部分は多々ありますが、Plack アプリを Devel::NYTProf でプロファイリングする方法について。 シングルプロセスの場合 plackup -MDevel::NYTProf 開発環境で plackup する場合など、シングルプロセスで起動する Plack アプリでプロファイルを取得するには、以下のように実行します。 NYTPROF="sigexit=int" plackup -MDevel::NYTProf -e 'sub { [200, [], ["ok $$"]] }' 通常なら、-d:NYTProf とするところを、-MDevel::NYTProf としていますが、動作は同じです。 環境変数 NYTPROF に設定している sigexit=int は、ワンライナーの実行を Ctrl + C で止めたときに、profiling

    Plack アプリのプロファイリング by Devel::NYTProf
  • Plack アプリで遅延ロードされるモジュールを見る

    アプリケーションで利用するモジュールは、できる限り先読み(preload)しておきたい。先読みしておけば、アプリケーション全体のメモリ消費が抑えられるし、遅延ロード(Lazy Load)のコストがなくなります。 モジュールの先読みは、例えば以下のように行います。 starman --preload-app MyApp app.psgi or starman -MFoo -MFoo::Bar -MBaz::DBI app.psgi あえて遅延ロードするという場合を除いて、先読みは行って損はないはず(小さいアプリだと、効果は小さいですお ^-^)。 Plack::Middleware::Debug::LazyLoadModules 明示的に use するモジュール群のピックアップはたやすい。なにせ明示されているから。しかし、暗黙に遅延ロードされてるモジュールやライブラリは調べてみると多く見つか

    Plack アプリで遅延ロードされるモジュールを見る
  • 1