マスタリングPerl (5章 Perlのプロファイリング)

勉強メモ。

  • プロファイリングとは?

プログラムが処理する対象を記録してサマリを作成し、プログラムの改善箇所を見つける。

  • Devel::SimpleProf

smallprof.outというサマリ結果を残す。
各プログラム行、実行した回数、各行のCPU時間が記録される。

$ perl -d:SmallProf program.pl

データベース連携時のプロファイリング。
プロファイリング結果は、標準出力にダンプされる。
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