Код, сгенерированный для ваших функций MATLAB®, включает следующие проверки на этапе выполнения и внешние вызовы функций MATLAB.
Проверки целостности памяти
Эти проверки обнаруживают нарушения целостности памяти в коде, сгенерированном для функций MATLAB и выполнения остановки с диагностическим сообщением.
Эти проверки включены по умолчанию. Без проверок целостности памяти нарушения приводят к непредсказуемому поведению.
Скорость отклика регистрируется в коде, сгенерированном для функций MATLAB
Эти проверки включают периодические проверки на перерывы Ctrl+C в коде, сгенерированном для функций MATLAB. Включение проверок скорости отклика также включает графическое обновление.
Эти проверки включены по умолчанию. Без этих проверок единственный способ закончить продолжительное выполнение может состоять в том, чтобы отключить MATLAB.
Внешние вызовы функций MATLAB
Внешние вызовы функций MATLAB, например, чтобы отобразить результаты, включены по умолчанию для отладки целей. Для получения дополнительной информации о внешних функциях, смотрите Объявление функций MATLAB как Внешние Функции.
Обычно генерация кода с проверками на этапе выполнения включила результаты в большем количестве сгенерированного кода и более медленного выполнения MEX-функции, чем генерация кода с отключенными проверками. Точно так же внешние вызовы являются трудоемкими и увеличивают использование памяти и время выполнения. Отключение проверок на этапе выполнения и внешних вызовов обычно приводит к оптимизированному сгенерированному коду и более быстрому выполнению MEX-функции. В следующей таблице перечислены проблемы, чтобы рассмотреть при отключении проверок на этапе выполнения и внешних вызовов.
Рассмотрите отключение... | Только если... |
---|---|
Проверки целостности памяти | Вы уже проверили, что границы массивов и проверка размерности являются ненужными. |
Проверки скорости отклика | Вы уверены, что не должны будете останавливать выполнение своего приложения с помощью Ctrl+C. |
Внешние вызовы | Вы используете внешние вызовы только для функций, которые не влияют на результаты приложения. |
Можно отключить проверки на этапе выполнения явным образом от диалогового окна настроек проекта, командной строки или диалогового окна настройки MEX.
Чтобы открыть диалоговое окно Generate, на странице Generate Code, кликают по стрелке Generate.
Установите Build type на MEX
.
Нажмите More Settings.
На вкладке Speed очистите Ensure memory integrity, Enable responsiveness to CTRL+C and graphics refreshing или Keep Extrinsic calls, как применимые.
В рабочем пространстве MATLAB задайте объект настройки MEX:
mexcfg = coder.config('mex');
В командной строке, набор IntegrityChecks
, ExtrinsicCalls
или свойства ResponsivenessChecks
ко лжи, как применимый:
mexcfg.IntegrityChecks = false; mexcfg.ExtrinsicCalls = false; mexcfg.ResponsivenessChecks = false;