Stats には次のメソッドがあります。
) |
このメソッドは Stats にファイル名の前に付いているすべてのパス 情報を取り除かせるためのものです。出力の幅を80文字以内に収めたいときに 重宝します。このメソッドはオブジェクトを変更するため、取り除いたパス情 報は失われます。パス情報除去の操作後、オブジェクトが保持するデータエント リは、オブジェクトの初期化、ロード直後と同じように``ランダムに''並んで います。strip_dirs() を実行した結果、2つの関数名が区別できな い(両者が同じファイルの同じ行番号で同じ関数名となった)場合、一つのエン トリに合算されされます。
filename[, ...]) |
Stats クラスのこのメソッドは、既存のプロファイリング・オブジェ クトに情報を追加します。引数は対応するバージョンの profile.run() または cProfile.run() によって生成 されたファイルの名前でなくてはな りません。関数の名前が区別できない(ファイル名、行番号、関数名が同じ)場 合、一つの関数の統計情報として合算されます。
filename) |
key[, ...]) |
このメソッドは Stats オブジェクトを指定した基準に従ってソート
します。引数には通常ソートのキーにしたい項目を示す文字列を指定します
(例: 'time'
や'name'
など)。
2つ以上のキーが指定された場合、2つ目以降のキーは、それ以前のキーで同等
となったデータエントリの再ソートに使われます。たとえば
sort_stats('name', 'file')
とした場合、まずすべてのエントリが関
数名でソートされた後、同じ関数名で複数のエントリがあればファイル名でソー
トされるのです。
キー名には他のキーと判別可能である限り綴りを省略して名前を指定できます。 現バージョンで定義されているキー名は以下の通りです。
正式名 | 内容 |
---|---|
'calls' |
呼び出し回数 |
'cumulative' |
累積時間 |
'file' |
ファイル名 |
'module' |
モジュール名 |
'pcalls' |
プリミティブな呼び出しの回数 |
'line' |
行番号 |
'name' |
関数名 |
'nfl' |
関数名/ファイル名/行番号 |
'stdname' |
標準名 |
'time' |
内部時間 |
すべての統計情報のソート結果は降順(最も多く時間を消費したものが一番上
に来る)となることに注意してください。ただし、関数名、ファイル名、行数
に関しては昇順(アルファベット順)になります。'nfl'
と
'stdname'
はやや異なる点があります。標準名(standard name)とは表
示欄の名前なのですが、埋め込まれた行番号の文字コード順でソートされます。
たとえば、(ファイル名が同じで)3、20、40という行番号のエントリがあった
場合、20、30、40 の順に表示されます。一方 'nfl'
は行番号を数値
として比較します。結果的に、sort_stats('nfl')
は
sort_stats('name', 'file', 'line')
と指定した場合と同じになりま
す。
後方互換性のため、数値を引数に使った
-1
、 0
、 1
、 2
の形式もサポートしています。
それぞれ 'stdname'
、'calls'
、'time'
、
'cumulative'
として処理されます。引数をこの旧スタイルで指定した場合、
最初のキー(数値キー)だけが使われ、複数のキーを指定しても2番目以降は無
視されます。
) |
Stats クラスのこのメソッドは、オブジェクト内の情報のリストを逆 順にソートします。 デフォルトでは選択したキーに応じて昇順、降順が適切に選ばれることに注意 してください。
[restriction, ...]) |
Stats クラスのこのメソッドは、profile.run() の項で 述べた プロファイルのレポートを出力します。
出力するデータの順序はオブジェクトに対し最後におこなった sort_stats() による操作にもとづいたものになります (add() と strip_dirs() による制限にも支配されます)。
引数は一覧に大きな制限を加えることになります。初期段階でリストはプロファ イルした関数の完全な情報を持っています。制限の指定は(行数を指定する)整 数、(行のパーセンテージを指定する) 0.0 から 1.0 までの割合を指定する小 数、(出力する standard name にマッチする)正規表現のいずれかを使ってお こないます。正規表現は Python 1.5b1 で導入された re モジュー ルで使える Perl スタイルのものです。複数の制限は指定された場合、それは 指定の順に適用されます。たとえば次のようになります。
print_stats(.1, 'foo:')
上記の場合まず出力するリストは全体の10%に制限され、さらにファイル名の 一部に文字列 .*foo: を持つ関数だけが出力されます。
print_stats('foo:', .1)
こちらの例の場合、リストはまずファイル名に .*foo: を持つ関数だ けに制限され、その中の最初の 10% だけが出力されます。
[restriction, ...]) |
Stats クラスのこのメソッドは、プロファイルのデータベースの中か ら何らかの関数呼び出しをおこなった関数すべてを出力します。出力の順序は print_stats() によって与えられるものと同じです。出力を制限す る引数も同じです。 各呼出し側関数についてそれぞれ一行ずつ表示されます。 フォーマットは統計を作り出したプロファイラごとに微妙に異なります。
[restriction, ...]) |
Stats クラスのこのメソッドは指定した関数から呼出された関数のリ ストを出力します。呼出し側、呼出される側の方向は逆ですが、引数と出力の 順序に関しては print_callers() と同じです。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。