こんにちは。detです。
少々複雑なPerlプログラムを組んだ時に、
どの部分にどれだけ時間がかかっているか、
知りたいことがあると思います。
そんな時は、プログラムの各処理ごとに時間や実行回数などを計測し、
出力してくれるプロファイラを使うと便利です。
いくつか種類がありますが、今回はソースコードを見ながら、
html形式のGUIでプロファイル結果が確認できるDevel::NYTProfという
Perlプロファイラを簡単にご紹介いたします。
まず、CPANから、Devel-NYTProf-4.06.tar.gz をダウンロードします。
http://search.cpan.org/~timb/Devel-NYTProf-4.06/lib/Devel/NYTProf.pm
次は、READMEの指示通りに、
$ perl Makefile.PL
$ make
$ make test
$ make install
として、インストールします。
インストールできれば、あとは簡単です。
hoge.plのプロファイリングをしたい時は、以下のように実行します。
$ perl -d:NYTProf hoge.pl
$ nytprofhtml
とすれば、nytprof/index.html ができるので、
そのhtmlをウェブブラウザで開くと、以下のようになります。
それぞれどのサブルーチンが何回呼ばれて、
どのくらい時間がかかっているかが表示されます。
さらにそのサブルーチンをクリックすると、以下のように、
ソースコードを見ながら確認ができます。
かなり見やすいので、うまく使えば、
かなり便利なのではないでしょうか?
ちなみに、NYTProfのNYTはアメリカの有名な新聞社、
NewYorkTimes社のことです。社内のエンジニアの方が、
このプロファイラを作成したとか。
新聞社からこういうものが産まれてくるのが面白いですね。
それでは、detでした。