Проверяйте на проблемы во время выполнения при помощи приложения

Прежде чем вы сгенерируете автономный код C/C++ для своего кода MATLAB®, это - лучшая практика сгенерировать MEX-функцию от ваших функций точки входа. Выполнение MEX-функции помогает вам обнаружить и зафиксировать ошибки времени выполнения, которые более трудно диагностировать в сгенерированном коде. Это также помогает вам проверить, что MEX обеспечивает ту же функциональность как оригинальный код MATLAB.

В приложении MATLAB Coder™, чтобы сгенерировать и запустить MEX-функцию для вашего кода MATLAB, выполняют шаг Check for Run-Time Issues.

  1. Запишите функцию или скрипт, который вызывает ваши функции точки входа. Можно использовать тот же тестовый файл (или файлы), что вы используете для автоматически входных define типов на шаге Define Input Types.

  2. Завершите шаги Define Input Types и Select Source Files. На странице Define Input Types нажмите Next, чтобы перейти к шагу Check for Run-Time Issues.

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

  4. Нажмите Check for Issues. Приложение генерирует MEX-функцию от вашей функции MATLAB. Это запускает тест, который вы задали, заменив вызовами ваших функций точки входа MATLAB с вызовами сгенерированной MEX-функции. Приложение сообщает о генерации MEX или ошибках сборки на вкладке Errors. Приложение сообщает об ошибках времени выполнения MEX относительно вкладки Test Output.

  5. Если ошибки отчетов приложения, чтобы отредактировать код MATLAB, нажимают View errors.

  6. После того, как вы устраните проблемы, чтобы повторно выполнить тест, нажмите Check for Issues.

Приложение MATLAB Coder не поддержано в MATLAB Online™.

Соберите количества выполнения линии MATLAB

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

Отключите JIT-компиляцию для параллельных циклов

По умолчанию, чтобы ускорить генерацию MEX-функции, приложение пытается использовать своевременную (JIT) компиляцию. JIT-компиляция несовместима с определенными функциями генерации кода и опциями, такими как пользовательский код и использование библиотеки OpenMP. Если приложение не может использовать JIT-компиляцию, оно генерирует функцию MEX C/C++ вместо этого. Если ваш код использует parfor и установкой Enable OpenMP library if possible является Yes, приложение использует JIT-компиляцию и обрабатывает parfor- циклы как for- циклы. Если вы хотите, чтобы шаг Check for Run-Time Issues запустил for- циклы параллельно, отключите JIT-компиляцию:

  1. На странице Check for Run-Time Issues нажмите Settings.

  2. На вкладке All Settings, набор Use JIT compilation in Check for Run-Time Issues к No.

Похожие темы