古い記事
ランダムジャンプ
新しい記事
Devel::DProf
http://metatoys.org/propella/tips/Devel_DProf.html

DProfの話は、「プログラミングPerl 第3版 VOLUME 1」の
第20章「Perlデバッガ」に載っています。
デバッガ(perl -de0)の話も詳しいです。

で、プロファイルの使い方。
例えば、foo.pl というプログラムをプロファイリング。
% perl -d:DProf foo.pl
で、tmon.out というファイルができます。整形して見るには dprofpp。
% dprofpp
Total Elapsed Time = 54.58411 Seconds
  User+System Time = 49.11048 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 82.8   40.69 41.423    454   0.0896 0.0912  Foo::Process
 8.95   4.393  3.399 102308   0.0000 0.0000  Bar::GetNext
 3.79   1.862  4.889    544   0.0034 0.0090  Foo::Parse
 2.22   1.090  1.823    454   0.0024 0.0040  Foo::GetContent
 1.92   0.943  0.641  33853   0.0000 0.0000  Hoge::search
 1.64   0.803  0.437  27471   0.0000 0.0000  Hoge::get
 1.63   0.802  0.835  19114   0.0000 0.0000  Foo::get
 1.40   0.687  0.357  33853   0.0000 0.0000  Hoge::find
 1.25   0.615  0.736  14739   0.0000 0.0000  Foo::_get
 1.14   0.562 49.770    454   0.0012 0.1096  Foo::Eat
 0.89   0.437  0.169  27471   0.0000 0.0000  Hoge::_getline
 0.83   0.406  0.402    454   0.0009 0.0009  Bar::Destroy
 0.63   0.311  5.192    454   0.0007 0.0114  Foo::Parse2
 0.24   0.117  0.113    454   0.0003 0.0002  main::output
 0.21   0.101  0.097    454   0.0002 0.0002  Foo::lock_file
この結果(擬似)から、Foo::Process が実行時間の大部分を占めている
こと判明。高速化するにはまずこの部分に手を入れるべきであるというこ
とが分かります。

ref.
- svk を当社比100倍高速化する方法: blog.bulknews.net
  http://blog.bulknews.net/mt/archives/002077.html
- [を] Perlデバッガ[2005-01-06-3]