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