Devel::NYTProfでコードのプロファイリング

Shibuya.pm#11でclkaoさんが紹介されていたDevel::NYTProfモジュールを初めて知り、早速試したところ
とっても結果が美しくて便利だったのでメモメモ。

開発がひととおりすんだが、なぜか速度がでない。そんなときにはプロファイラの出番です。
Devel::NYTProf - モダンなPerl入門 - モダンなPerl入門



指定したモジュール別にライン毎・ブロック毎・関数毎など、プログラムのどこで時間がかかってるかわかるモジュールです。

以下のコマンドだけで、解析結果が./nytprof/index.htmlに出力されています。

perl -d:NYTProf target.pl

# HTML出力
nytprofhtml 
open nytprof/index.html


SYNOPSISではcsvにする方法も掲載されています

# or into comma seperated files, e.g., ./nytprof/*.csv
nytprofcsv


他にもDevel::DProf、Devel::Profilerなどと組み合わせると精度が上がりそうですね!!
Devel::Coverも結果がHTMLに出力できるので、テストの精度も上げつつ併せて使ってみたいと思います。

追記

モダンPerl入門の著者でもありJPAの発起人のid:lestrratさんこと牧さんよりブクマコメントを頂きました。
教えて頂いてありがとうございます。

>拙著モダンPerl入門にも使い方書いてあるんで、よろしくよろしく

モダンPerl入門のパフォーマンスチューニングの章に、バッチリDevel::NYTProfが載ってたんですね><
再度モダンPerl入門、略してモダパーを何回も熟読したいと思います!


参考リンク