Catalyst::Plugin::DumpRequired

Posted on 2月 28, 2009
Filed Under catalyst, perl |

fastcgi(Catalyst,perl)+lighttpdでよくウェブアプリをつくるのですが
Copy on Writeの恩恵を受け、メモリを節約するために、
fastcgiの親プロセスで網羅的にperlモジュールを読み込んでおき、
子プロセスの親プロセスとで共有するメモリを増やしたくなります。

子プロセスでどんなモジュールをrequireしてるのか?
がわかればMyApp.pmでuseしておくことで親プロセスで読み込めます。

それをわかりやすくするためのCatalystプラグインを作りました。

MyApp.pmで

PERL:
  1. __PACKAGE__->setup(do {
  2.     my @plugins;
  3.     push @plugins, 'StackTrace', 'DumpRequired' if $ENV{CATALYST_DEBUG};
  4.     @plugins;
  5. });

とかするといいと思います。

いろんなパスを通るようにrequest投げると $c->log->debug にrequireしたモジュールが出てきます。

以下参考にさせていただきました。
mod_perlで親プロセスとのCopy on Writeな共有メモリを増やす方法

Comments

One Response to “Catalyst::Plugin::DumpRequired”

  1. mash on 2月 28th, 2009 19:50

    gistのスクリプトかっこいいなぁ

Leave a Reply