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

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

MEL/Python を使用すると、プロファイラ(Profiler)で記録を開始/停止したり、プロファイリングのプロシージャを計測することができます。計測は、解析のために情報を収集するプログラムの変更です。

MEL を使用する

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

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

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

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

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 コマンドのドキュメントを参照してください。たとえば、CPU 表示(CPU view)カテゴリ表示(Category view)を切り替えたり、選択したイベントをフレーム化することができます。

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 コマンドのドキュメントを参照してください。たとえば、CPU 表示(CPU view)カテゴリ表示(Category view)を切り替えたり、選択したイベントをフレーム化することができます。

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

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