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

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

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

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

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

    Внимание

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

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

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

    Внимание

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

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

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

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

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

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

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

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

Отключение проверок на этапе выполнения Используя приложение MATLAB CODER

  1. Чтобы открыть диалоговое окно Generate, на Сгенерировать Кодовой странице, нажимают стрелку Generate.

  2. Установите тип Сборки на MEX.

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

  4. На вкладке Speed, ясной, Гарантируют целостность памяти, Включают скорость отклика к CTRL+C и графическому обновлению, или Сохраняют Внешние вызовы, как применимые.

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

  1. В MATLAB workspace задайте объект настройки MEX:

    mexcfg = coder.config('mex');

  2. В командной строке, набор IntegrityChecks, ExtrinsicCalls или свойства ResponsivenessChecks ко лжи, как применимый:

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

Была ли эта тема полезной?