MEL/Python を使用すると、プロファイラ(Profiler)で記録を開始/停止したり、プロファイリングのプロシージャを計測することができます。計測は、解析のために情報を収集するプログラムの変更です。
次の例のように、イベントの記録を有効および無効にするには、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)を切り替えたり、選択したイベントをフレーム化することができます。
イベントの記録を無効にするには、次のように、サンプリングをそれぞれ 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() を呼び出します。詳細については、MProfiler と MProfilingScope C++ API リファレンス ドキュメント、および Maya 開発者ヘルプの「Autodesk Maya 2015 Extension の新機能」を参照してください。