buildInstrumentedMex
ログ作成可能な計測機能を含んだコンパイル済み C コード関数の生成
説明
例
入力引数
ヒント
ソフトウェアに付属の MATLAB 関数はインストルメント化できません。最上位の関数がそのような MATLAB 関数の場合、ログには何も含まれません。また、スクリプトもインストルメント化できません。
計測結果は、インストルメント化した MEX 関数が呼び出されるたびに累積されます。
clearInstrumentationResults
を使用して、ログの前回の結果をクリアします。コーディング パターンによっては膨大なデータが渡されますが、使用されるデータはその一部です。そのような場合、
buildInstrumentedMex
の使用時にパフォーマンスの低下が確認される可能性もあります。次のパターンでは、subfun
は入力配列の 1 要素A
しか使用しません。通常の実行では、subfun
を 1 回実行する時間はA
のサイズにかかわらず一定です。つまり、関数topfun
がsubfun
をN
回呼び出すと、topfun
の合計実行時間はN
に比例します。ただし、インストルメント化されると、subfun
を 1 回実行する時間はN
^2 に比例するようになります。これは、最小データと最大データが配列全体に対して計算されるためです。A
が大きいと、この計算でパフォーマンスの大幅な低下が発生する場合があります。そのため、可能な限り、関数が実際に必要とするデータのみを渡すようにしてください。function A = topfun(A) N = numel(A); for i=1:N A(i) = subfun(A,i); end end function b = subfun(A,i) b = 0.5 * A(i); end function A = topfun(A) N = numel(A); for i=1:N A(i) = subfun(A(i)); end end function b = subfun(a) b = 0.5 * a; end
バージョン履歴
R2011b で導入
参考
fiaccel
| clearInstrumentationResults
| showInstrumentationResults
| NumericTypeScope
| codegen
(MATLAB Coder) | mex