これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド dprofppp です。
プログラム:
NAME
dprofpp - Perl プロファイル データを表示する
SYNOPSIS
dprofpp [-a|-z|-l|-v|-U] [-d] [-s|-r|-u] [-q] [-F] [-I|-E] [-O cnt] [-A] [-R] [-S] [-g
サブルーチン] [-G [-P]][-f 】 【プロフィール】
dprofpp -T [-F] [-g サブルーチン】 【プロフィール】
dprofpp -t [-F] [-g サブルーチン】 【プロフィール】
dprofpp -G [-P】 【プロフィール】
dprofpp -p スクリプト [-Q] [その他のオプション]
dprofpp -V [プロフィール]
DESCRIPTION
dprofpp コマンドは、プロファイラーによって生成されたプロファイル データを解釈します。
Devel::DProf プロファイラ。 Dprofpp がファイルを読み取ります tmon.out 15 個のサブルーチンを表示します
最も時間を使っているもの。 デフォルトでは、各サブルーチンの時間が与えられます。
子サブルーチンの時間は除きます。
Perl スクリプトをプロファイリングするには、次のコマンドを使用して Perl インタープリターを実行します。 -d スイッチ。 それでプロフィールに
スクリプト テスト.pl Devel::DProf では以下を使用します。
$ perl5 -d:DProf test.pl
次に、dprofpp を実行してプロファイルを分析します。 dprofpp の出力は、フラグによって異なります。
使用しているプログラムと Perl のバージョン。
$ dprofpp -u
合計経過時間= 1.67秒
ユーザー時間 = 0.61 秒
排他的な時間
%Time Seconds #Calls sec/call Name
52.4 0.320 2 0.1600 main::foo
45.9 0.280 200 0.0014 メイン::バー
0.00 0.000 1 0.0000 DynaLoader::インポート
0.00 0.000 1 0.0000 main::baz
dprofpp ツールは、プロファイル データを分析する前にプロファイラーを実行することもできます。 上記
XNUMX つの dprofpp コマンドで XNUMX つのコマンドを実行できます。
$ dprofpp -u -p test.pl
生のプロファイルの説明については、Devel::DProf の「PROFILE FORMAT」を参照してください。
出力
列は次のとおりです。
%時間
このルーチンに費やした時間の割合。
#コール
このルーチンの呼び出し数。
秒/通話
このルーチンへの呼び出しあたりの平均秒数。
名前
ルーチンの名前。
CumulS
このルーチンおよびそこから呼び出されるルーチンに費やされた時間 (秒単位)。
秒を除く
このルーチンに費やされた時間 (秒単位) (このルーチンから呼び出されるルーチンは含まれません)。
C秒/秒
このルーチンの各呼び出し (呼び出されたものを含む) に費やされる平均時間 (秒単位)
それから)。
OPTIONS
-a サブルーチン名のアルファベット順に並べ替えます。
-d 使用されている並べ替えを逆にする
-A オートロードされたサブルーチンのタイミングを *::AUTOLOAD のタイミングとしてカウントします。 それ以外の場合は時間
オートロードするには、サブルーチン自体の時間としてカウントされます(自動ロードする方法はありません)
自動ロード時間を実行時間から分離します)。
これは、新しい Perl では無関係になります。 彼らは「Devel::DProf」に通知します。
いつ 「AUTOLOAD」は実際のサブルーチンに切り替わるため、別の統計が必要になります。
「AUTOLOAD」は、このオプションが設定されているかどうかに関係なく収集されます。
-R 同じパッケージ内で定義された匿名サブルーチンを個別にカウントします。
-E (デフォルト) 子サブルーチン時間を除くすべてのサブルーチン時間を表示します。
-F dprofpp がプロファイルが次のように報告した場合、偽の終了タイムスタンプを強制的に生成します。
文字化けした。 これは、プロファイルが文字化けしていると dprofpp が判断した場合にのみ役立ちます。
終了タイムスタンプが欠落しているため。 これを行う場合は、あなたは自分自身です。 バグを調べてください
のセクションから無料でダウンロードできます。
-I 子サブルーチン時間を含むすべてのサブルーチン時間を表示します。
-l サブルーチンの呼び出し数で並べ替えます。 これは、次の候補者を特定するのに役立つ可能性があります。
インライン化。
-O cnt
表示のみ cnt サブルーチン。 デフォルトは 15 です。
-p スクリプト
dprofpp に、指定されたスクリプトをプロファイリングしてからそのプロファイルを解釈するように指示します。
データ。 見る -Q.
-Q と一緒に使用 -p スクリプトをプロファイリングした後、解釈せずに終了するように dprofpp に指示します。
データ。
-q 列ヘッダーを表示しません。
-r ユーザー + システム時間ではなく、経過したリアルタイム時間を表示します。
-s ユーザー + システム時間ではなく、システム時間を表示します。
-T サブルーチン呼び出しツリーを標準出力に表示します。 サブルーチン統計は表示されません。
-t サブルーチン呼び出しツリーを標準出力に表示します。 サブルーチン統計は表示されません。
関数が同じ呼び出しレベルで複数回連続して呼び出される場合、
繰り返し回数とともに XNUMX 回表示されます。
-S ディスプレイ マージ サブルーチン呼び出しツリーを標準出力に出力します。 それぞれの統計が表示されます
木の枝。
関数が複数呼び出された場合 ( 必ずしも 連続した)同じ回数
分岐すると、これらの呼び出しはすべて次のレベルの XNUMX つの分岐に入ります。 リピート回数は、
インクルーシブタイム、エクスクルーシブタイム、キッズタイムを組み合わせて出力します。
ブランチは包含時間に基づいてソートされます。
-U 並べ替えないでください。 生のプロファイルで見つかった順序で表示されます。
-u ユーザー + システム時間ではなく、ユーザー時間を表示します。
-V dprofpp のバージョン番号を出力して終了します。 未加工のプロファイルが見つかった場合は、
XS_VERSION 変数も表示されます。
-v 各呼び出し中にサブルーチンに費やされた平均時間で並べ替えます。 これは識別に役立つ可能性があります
インライン化の候補。
-z (デフォルト) 使用されたユーザー時間とシステム時間の合計で並べ替えます。 最初の数行は次のようになります。
どのサブルーチンが最も時間を費やしているか。
-g "サブルーチン"
「サブルーチン」とそこから呼び出されるすべてのものを除くサブルーチンを無視します。
-G
パターンに一致するすべての呼び出しを「グループ化」します。 たとえば、これは次のようになります
パッケージのセットのすべての呼び出しをグループ化するために使用されます
-G "(パッケージ 1::)|(パッケージ 2::)|(パッケージ 3::)"
または、サブルーチンを名前でグループ化します。
-G "getNum"
-P -G と一致しないすべての呼び出しを「プル」して集約するために、-G とともに使用されます。
-f
パターンに一致するすべての通話をフィルタリングします。
-h 簡単なヘルプを表示して終了します。
-H 長いヘルプを表示して終了します。
ENVIRONMENT
環境変数 DPROFPP_OPTS のオプションを含む文字列に設定できます。
dprofpp。 必要に応じてこれを使用することもできます -I が -E またはあなたが望むなら -F いつも。
これはかなり遅れて追加されたため、望ましくない副作用がいくつかあります。 のオプション
コマンドラインは DPROFPP_OPTS のオプションをオーバーライドする必要がありますが、ここではそれを当てにしないでください。
バージョン。
onworks.net サービスを使用してオンラインで dprofppp を使用する