実行時チェックの制御
実行時チェックのタイプ
MATLAB® 関数用に生成されたコードには、次の実行時チェックと MATLAB 関数への外部呼び出しが含まれています。
メモリの整合性チェック
これらのチェックは、MATLAB 関数に対して生成されたコード内にメモリの整合性違反があればそれを検出し、実行を停止して診断メッセージを出します。
注意
これらのチェックは既定で有効になっています。メモリの整合性チェックが行われないと、違反が予期できない動作の原因になります。
MATLAB 関数に対して生成されたコードでの応答性チェック
これらのチェックによって MATLAB 関数のコード生成における Ctrl + C キーによる中断を定期的に確認できます。応答性チェックを有効にすると、グラフィックスの表示更新も有効になります。
注意
これらのチェックは既定で有効になっています。これらのチェックがなければ、長時間かかる実行を終了するには MATLAB 自体を終了させるしかなくなります。
MATLAB 関数への外部呼び出し
MATLAB 関数への外部呼び出し (たとえば、結果を表示するため) は、既定の設定ではデバッグ目的のために有効になっています。外部関数の詳細は、coder.extrinsic コンストラクトの使用を参照してください。
実行時チェックを無効にする場合
一般に、実行時チェックを有効にしてコードを生成すると、チェックを無効にした場合に比べて、コードが増え、MEX 関数の実行速度が落ちます。同様に、外部呼び出しは時間がかかり、メモリの使用量と実行時間が増加します。実行時チェックと外部呼び出しを無効にすると、通常は効率の良いコードが生成され MEX 関数の実行速度が上がります。次の表に、実行時チェックおよび外部呼び出しを無効にする時に考慮すべき問題を挙げます。
無効にするチェック | 無効にする場合 |
---|---|
メモリの整合性チェック | 配列の範囲と次元のチェックが不要であることが検証済みである場合。 |
応答性チェック | そのアプリケーションを Ctrl+C キーで停止する必要がないことが確かな場合。 |
外部呼び出し | アプリケーションの結果に影響を及ぼさない関数に対してのみ、外部呼び出しを使用している場合。 |
実行時チェックを無効にする方法
実行時チェックの無効化は、[プロジェクトの設定] ダイアログ ボックス、コマンド ライン、または [MEX コンフィギュレーション] ダイアログ ボックスから明示的に行えます。
MATLAB Coder アプリを使用した実行時チェックの無効化
[生成] ダイアログ ボックスを開くために、[コード生成] ページの [生成] 矢印 をクリックします。
[ビルド タイプ] を
[MEX]
に設定します。[詳細設定] をクリックします。
[速度] タブで、状況に応じて [メモリの整合性を確保]、[Ctrl + C キーへの応答、およびグラフィックスの更新を有効にする] または [外部呼び出しを維持] をオフにします。
コマンド ラインからの実行時チェックの無効化
MATLAB ワークスペースで、MEX 構成オブジェクトを定義します。
mexcfg = coder.config('mex');
コマンド ラインから、状況に応じて
IntegrityChecks
、ExtrinsicCalls
またはResponsivenessChecks
プロパティを偽に設定します。mexcfg.IntegrityChecks = false; mexcfg.ExtrinsicCalls = false; mexcfg.ResponsivenessChecks = false;