frei

旧「anney's room」からブログ「frei」だけ引っ越し&残しました

とれーす。

今、とってもやりたい事がある。

あるけど、毎日残業が続いて、なかなか集中出来ないなぁ。

くぅー。

それにしても、perlの検定試験があるとは…。

知らなかったよ、おじいさん、探してくれてありがとう

面白そうとは思うものの、15,750円を払う余裕はないなぁ…。

それはそうと、perlメソッドトレース方法をメモ。

メソッドのトレーステストするのに、どうすりゃ効率良く出来るんか考えつつ、

うっかり、Devel::DProf は、コマンドライン上でしか使えないと思い込んでて

ブラウザー経由で操作した時は、トレース出来ないんだと思ってたら。

上司と話してるうちに、perlのパスを指定してる行で設定出来るじゃんっ!と気付いた次第(笑)

#!/usr/bin/perl -d:DProf

結構、この方法、有名らしいしね。探し方が甘かったなぁ…orz

で、これをブラウザーから呼び出して実行すると、

このソースの置いてあるディレクトリ内に「tmon.out」ってファイルが出来るんだね。

あ、ちゃんとwebユーザーも書き込めるように、パーミッションを設定しないとエラります。

こんな感じで。

DProf: unable to write 'tmon.out', errno = 13

一瞬、tmon.out の出力先を変えられないかと、Devel::DProf のソース見たんだけどダメですね。

Devel::Profiler なら、output_file の設定出来そうな気配なんだけどね。

でもって、出力された tmon.out の内容を見るには

dprofpp tmon.out
と実行して、と。

Total Elapsed Time =  0.06982 Seconds

User+System Time = 0.06982 Seconds

Exclusive Times

%Time ExclSec CumulS #Calls sec/call Csec/c Name

57.2 0.040 0.060 3 0.0133 0.0200 main::BEGIN

28.6 0.020 0.020 2 0.0100 0.0100 lib::BEGIN

0.00 - -0.000 1 - - Config::import

0.00 - -0.000 1 - - lib::_nativize

0.00 - -0.000 1 - - Test::new

0.00 - -0.000 1 - - Test::isTestMethod

0.00 - -0.000 1 - - strict::bits

0.00 - -0.000 1 - - Config::TIEHASH

0.00 - -0.000 1 - - lib::_get_dirs

0.00 - -0.000 2 - - Config::fetch_string

0.00 - -0.000 2 - - strict::import

0.00 - -0.000 1 - - lib::import

0.00 - -0.000 3 - - Config::FETCH

おー、ちゃんと自作のTestクラスの isTestMethod を通った事がわかりますねー。便利便利。

しかも、伊藤直也さんとこでちゃんと触れてて、…というか「Perl デバッグ」に書いてあるようで

mod_perl の場合は Apache::DProf を使うっぽいので、今度はそっちを試してみよーっと。