13.6 プロファイリング
Octave は、関数レベルでコード実行のプロファイリングをサポートしています。プロファイリングが有効になっている場合、関数 (組み込み関数、演算子、oct ファイルと mex ファイル内の関数、Octave コードのユーザー定義関数、および匿名関数をサポート) への各呼び出しが Octave コードの実行中に記録されます。その後、このデータはコードの動作を分析するのに役立ち、特に、多くの計算時間を費やし、最適化に費やす最適なターゲットであるコード内の「ホット スポット」を見つけるのに役立ちます。
プロファイリングの主なコマンドは でprofile、これを使用してプロファイラーを開始または停止したり、後で収集されたデータを照会したりできます。データは Octave データ構造で返され、その後、他のルーチンやツールで調査したり、さらに処理したりできます。
: profile on
: profile off
: profile resume
: profile clear
: S = profile ("status")
: T = profile ("info")
組み込みプロファイラーを制御します。
profile on
プロファイラーを起動します。以前に収集されたデータはすべてクリアされます。
profile off
プロファイリングを停止します。収集されたデータは、後で で取得して調べることができますT = profile ("info")。
profile clear
収集されたプロファイラー データをすべてクリアします。
profile resume
古いデータを消去せずにプロファイリングを再開します。新しく収集されたすべての統計が既存の統計に追加されます。
S = profile ("status")
プロファイラーの現在のステータスに関する情報を含む構造体を返します。現時点では、またはProfilerStatusのいずれ"on"かであるフィールドのみがあります"off"。
T = profile ("info")
収集されたプロファイリング統計を構造体TFunctionTableに返します。フラット プロファイルは構造体の配列である フィールドに返されます。各エントリは、呼び出された関数に対応し、プロファイリング統計が存在します。さらに、フィールドHierarchicalには階層的な呼び出しツリーが含まれます。各ノードには、対応する関数を識別するインデックスFunctionTableと、呼び出しツリーのこのレベルでの呼び出し回数と経過時間のデータ フィールドがあります。
See also: profshow, profexplore.
収集されたデータの概要を取得する簡単な方法は です profshow。この関数は、 によって返されたプロファイラー データを profile入力として受け取り、フラット プロファイルを出力します。次に例を示します。
Function Attr Time (s) Calls ---------------------------------------- >myfib R 2.195 13529 binary <= 0.061 13529 binary - 0.050 13528 binary + 0.026 6764
これは、実行時間のほとんどが関数の実行に費やされたことを示しています。マイフィブ'、およびリストされたバイナリ演算子を評価する少数の部分が表示されます。さらに、関数が呼び出された頻度が表示され、プロファイラーはそれが再帰的であることも記録します。
: profshow (data)
: profshow (data, n)
: profshow ()
: profshow (n)
関数ごとのプロファイラー結果をフラットに表示します。
最も重要なn 個の関数のプロファイラー データ (実行時間、呼び出し回数) を出力します。結果は、各関数に費やされた合計時間の降順で並べ替えられます。n が指定されていない場合は、デフォルトで 20 になります。
入力データは、によって返される構造体ですprofile ("info")。指定されていない場合は、profshow現在のプロファイル データセットが使用されます。
属性列には「R' は再帰関数の場合に使用され、その他のすべての関数タイプでは空白になります。
See also: profexplore, profile.
: profexport (dir)
: profexport (dir, data)
: profexport (dir, name)
: profexport (dir, name, data)
プロファイラー データを HTML としてエクスポートします。
data内のプロファイリングデータをdirフォルダ内の一連のHTMLファイルにエクスポートします。最初のファイルは次のようになります。 データ/index.html。
nameを指定する場合、エクスポートするプロファイルの「名前」を含む文字列にする必要があります。この名前は HTML に含まれます。
入力データは、によって返される構造体ですprofile ("info")。指定されていない場合は、profexport現在のプロファイル データセットが使用されます。
See also: profshow, profexplore, profile.
: profexplore ()
: profexplore (data)
階層的なプロファイラー出力をインタラクティブに探索します。
データがによって返されるプロファイル データを含む構造体である と仮定すると、このコマンドは、呼び出しツリーを探索するために使用できる対話型プロンプトを開きます。 と入力すると、使用可能なコマンドのリストが表示されます。データが省略された場合は、 が呼び出され、代わりに使用されます。 profile ("info")helpprofile ("info")
See also: profile, profshow.