マスタリングPerl (5章 Perlのプロファイリング)
勉強メモ。
- プロファイリングとは?
プログラムが処理する対象を記録してサマリを作成し、プログラムの改善箇所を見つける。
- Devel::SimpleProf
smallprof.outというサマリ結果を残す。
各プログラム行、実行した回数、各行のCPU時間が記録される。
$ perl -d:SmallProf program.pl
- DBI::Profile
データベース連携時のプロファイリング。
プロファイリング結果は、標準出力にダンプされる。
DBI_PROFILE環境変数を設定し、データベースプロファイリングを有効にする。
-
- !Statement
クエリ毎の処理時間、メソッド呼び出し数を記録する。
-
- !MethodName
DBI関数毎に処理時間、呼び出し数を記録する。
$ env DBI_PROFILE='!Statement' perl program.pl $ env DBI_PROFILE='!MethodName' perl program.pl $ env DBI_PROFILE='!Statement:!MethodName' perl program.pl
- DBI::ProfileDumper
DBI::Profileと、ほぼ同処理を行うが、結果をファイル(dbi.prof)に出力する。
dbiprofコマンドで解析する。
$ env DBI_PROFILE='!Statement'/DBI::ProfileDumper program.pl
- Devel::DProf
Devel::SimpleProfと、ほぼ同処理を行う。
結果は、tmon.outに出力され、dprofppコマンドで解析する。
- Devel::Profiler
Devel::DProfの代替。
DProfでセグメンテーション障害が発生した時とかは、Devel::Profilerを使う。
- Devel::Cover
テストスイートのプロファイリングを作成し、テストされるコードベースの量を解析する。
coverコマンドにより、コードのカバレッジ統計を解析する。
結果は、標準出力とHTMLファイルに出力される。
$ HARNESS_PERL_SWITCHES=-MDevel::Cover make test