MEL または Python または API を使用したプロファイリング

MEL/Python のコマンドを使用したプロファイリング

MEL/Python profiler および profilerTool コマンドを使用してプロファイラ(Profiler)、照会イベント情報、検索イベント、プロファイリング用の計測プロシージャでの記録を開始/停止できます。計測は、解析のために情報を収集するプログラムの変更です。

次の profilerTool フラグは編集モードで使用する必要があります。

次の profilerTool フラグは照会モードで使用する必要があります。

MEL を使用する

記録するには

次の例のように、イベントの記録を有効および無効にするには、profiler command -sampling (-s) フラグを使用します。

profiler -s true;
polyCube;
profiler -s false;

カテゴリを追加するには

プロファイリング カテゴリを追加するには、次の例のように、-addCategory フラグを使用します。

int $melCategoryIndex = `profiler -addCategory "MEL Scripts"`;
注:

現在、ローカライズ文字(上位 ASCII 文字および 2 バイト文字)を使用したカテゴリ名はサポートされていません。

プロシージャを計測するには

MEL プロシージャを定義し、-instrumentMel フラグを使用してこのプロシージャを計測します。次の例は、ファクトリアルと呼ばれるプロシージャの計測を有効にする方法を示しています。

profiler -instrumentMel true -procedureName "Factorial" -categoryIndex $melCategoryIndex -colorIndex 8 -procedureDescription "FactorialDesc" ;

1 つまたは複数のプロシージャの計測を無効にすることができます。特定のプロシージャの計測を無効にするには、-instrumentMel を false に設定し、計測を無効にするプロシージャの名前を指定します。

profiler -instrumentMel false -procedureName "Factorial" -categoryIndex $melCategoryIndex;

一度にすべての計測を無効にするには、-clearAllMelInstrumentation フラグを使用します。

profiler -clearAllMelInstrumentation;

前述のフラグに加え、バッファ内のイベント数を照会する -eventCountプロファイラ(Profiler)のデータをリセットする -reset などの他の便利なフラグの詳細については、profiler MEL コマンドのドキュメントを参照してください。

プロファイラ(Profiler)のメイン ビューを操作する方法の詳細については、profilerTool MEL コマンドのドキュメントを参照してください。たとえば、ビューを切り替えることや、特定のセグメントを分離することができます。

Python の使用法

記録するには

イベントの記録を無効にするには、次のように、サンプリングをそれぞれ True/False に設定します。

cmds.profiler(sampling = True)
cmds.polyCube()
cmds.profiler(sampling = False)

カテゴリを追加するには

プロファイリング カテゴリを追加するには、次のように OpenMaya.MProfiler.addCategory() を呼び出します。

categoryIndex = OpenMaya.MProfiler.addCategory("Python Scripts")

プロシージャを計測するには

プロシージャを計測するには、次の例のように、プロシージャ定義で OpenMaya.MProfilingScope() を呼び出します。

def Factorial(number):
    # Instrument this procedure
    profiler = OpenMaya.MProfilingScope(categoryIndex, OpenMaya.MProfiler.kColorE_L1, "Factorial", "FactorialDesc")
    
    result = 1
    for i in range(1, number+1):
        result = result * i
    return result

前述のフラグに加え、バッファ内のイベント数を照会する -eventCountプロファイラ(Profiler)のデータをリセットする -reset などの他の便利なフラグの詳細については、profiler Python コマンドのドキュメントを参照してください。-instrumentMel フラグは、MEL プロシージャの計測に Python で使用できます。

プロファイラ(Profiler)のメイン ビューを操作する方法の詳細については、profilerTool Python コマンドのドキュメントを参照してください。たとえば、ビューを切り替えることや、特定のセグメントを分離することができます。

プラグインで関数を計測する

プラグインで MProfiler::addCategory() メソッドを呼び出すと、カテゴリをプロファイラ(Profiler)に追加できます。プロファイリングする関数を計測するには、MProfilingScope::MProfilingScope() を呼び出します。詳細については、MProfilerMProfilingScope C++ API リファレンス ドキュメント、および Maya 開発者ヘルプの「Autodesk Maya 2015 Extension の新機能」を参照してください。

プロシージャを計測して関連する DG ノードを登録する

Python または C++ を使用してプロシージャを計測するときに、関連する DG ノードを登録することもできます。この場合、プロファイラ(Profiler)グラフで計測されるイベントを選択するときに、その関連する DG ノードも選択され、アトリビュート エディタ(Attribute Editor)アウトライナ(Outliner)ノード エディタ(Node Editor)に表示されます。

これを行うには、Python スクリプトまたは C++ プラグインで MProfilingScope::MProfilingScope() を呼び出すときに、関連する DG ノードを MObject として入力パラメータの 1 つとして提供します。MObject 入力パラメータは DG ノードを示す必要があり、アトリビュートまたはコンポーネントを示すことはできません。

詳細については、OpenMaya::MProfilingScope() C++ API リファレンス ドキュメント、および Maya 開発者ヘルプの「Autodesk Maya 2016 の新機能」を参照してください。

関連項目