Управляйте проверками на этапе выполнения

Типы проверок на этапе выполнения

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

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

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

    Внимание

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

  • Скорость отклика регистрируется в коде, сгенерированном для функций MATLAB

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

    Внимание

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

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

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

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

Обычно генерация кода с проверками на этапе выполнения включила результаты в большем количестве сгенерированного кода и более медленного выполнения 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 ко лжи, как применимый:

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