Проверки во время выполнения управления

Типы проверок во время выполнения

Код, сгенерированный для MATLAB® функции включают следующие проверки во время выполнения и внешние вызовы функций MATLAB.

  • Проверки целостности памяти

    Эти проверки обнаруживают нарушения целостности памяти в коде, сгенерированном для функций MATLAB, и останавливают выполнение с помощью диагностического сообщения.

    Внимание

    Эти проверки включены по умолчанию. Без проверок целостности памяти нарушения приводят к непредсказуемому поведению.

  • Проверки быстродействия кода, сгенерированного для функций MATLAB

    Эти проверки включают периодические проверки на пропуски Ctrl + C в коде, сгенерированном для функций MATLAB. Включение проверок быстродействия также включает обновление графики.

    Внимание

    Эти проверки включены по умолчанию. Без этих проверок единственным способом завершить длительное выполнение может быть завершение MATLAB.

  • Внешние вызовы функций MATLAB

    Внешние вызовы функций MATLAB, например, для отображения результатов, включены по умолчанию в целях отладки. Для получения дополнительной информации о внешних функциях см. Использование coder.extrinsic Конструкция.

Когда отключать проверки во время выполнения

Как правило, генерация кода с включенными проверками во время выполнения приводит к большему количеству сгенерированного кода и более медленному выполнению MEX-функции, чем генерация кода с отключенными проверками. Аналогичным образом внешние вызовы являются длительными и увеличивают использование памяти и время выполнения. Отключение проверок во время выполнения и внешних вызовов обычно приводит к оптимизации сгенерированного кода и более быстрому выполнению MEX-функции. В следующей таблице перечислены проблемы, которые необходимо учитывать при отключении проверок во время выполнения и внешних вызовов.

Рассмотрите отключение...Только если...
Проверки целостности памятиВы уже проверили, что ограничения массивов и проверка размерностей ненужны.
Проверки быстродействияВы уверены, что вам не нужно будет останавливать выполнение вашего приложения с помощью Ctrl + C.
Внешние вызовыВы используете внешние вызовы только для функций, которые не влияют на результаты приложения.

Как отключить проверки во время выполнения

Можно явным образом отключить проверки во время выполнения из диалогового окна параметров проекта, командной строки или диалогового окна строения MEX.

Отключение проверок во время выполнения с помощью приложения MATLAB Coder

  1. Чтобы открыть диалоговое окно Generate, на странице Generate Code щелкните стрелу Generate.

  2. Установите Build type значение MEX.

  3. Нажмите More Settings.

  4. На вкладке Speed удалите Ensure memory integrity, Enable responsiveness to CTRL+C and graphics refreshing или Keep Extrinsic calls, если применимо.

Отключение проверок во время выполнения из командной строки

  1. В рабочем пространстве MATLAB задайте объект строения MEX:

    mexcfg = coder.config('mex');

  2. В командной строке установите IntegrityChecks, ExtrinsicCalls, или ResponsivenessChecks свойства для false, если применимо:

    mexcfg.IntegrityChecks = false;
    mexcfg.ExtrinsicCalls = false;
    mexcfg.ResponsivenessChecks = false;