Сравнение производительности

Производительность режимов симуляции

Акселератор и Быстрые Режимы Accelerator дают лучшее улучшение скорости по сравнению с Режимом normal mode, когда время выполнения симуляции превышает время, требуемое для генерации кода. Поэтому Акселератор и Быстрые Режимы Accelerator обычно выполняют лучше, чем Режим normal mode, когда времена выполнения симуляции являются несколькими минутами или больше. Однако модели со значительным количеством Stateflow® или блоков MATLAB function могут показать только маленькое улучшение скорости по сравнению с Режимом normal mode, потому что в Режиме normal mode эти блоки также моделируют через генерацию кода.

Включая настраиваемые параметры в вашей модели может также увеличить время симуляции.

Данные показывают в общих чертах производительность гипотетической модели, моделируемой в Нормальном, Акселераторе и Быстрых Режимах Accelerator.

Производительность, когда цель должна быть восстановлена

Сплошные линии в фигуре показывают производительность, когда целевой код должен быть восстановлен (“все цели, которые устарели”). Для этой гипотетической модели масштаб времени находится на порядке минут, но это могло быть более длинно для более сложных моделей.

Как обобщено в фигуре, время, требуемое скомпилировать модель в Режиме normal mode, является меньше, чем время, требуемое создавать или Акселератор целевой или Быстрый исполняемый файл Акселератора. Очевидно от фигуры, что для маленького Режима normal mode времен остановки симуляции приводит к более быстрым полным временам симуляции или, чем Режим Accelerator или, чем Быстрый Режим Accelerator.

Точка перехода, где Режим Accelerator или Быстрый результат Режима Accelerator в более быстрые времена выполнения зависят от сложности и содержимого вашей модели. Например, те модели, запускающиеся в Режиме Accelerator, содержащем большие количества блоков с помощью интерпретированного кода (см., Выбирают Blocks for Accelerator Mode), не может запуститься намного быстрее, чем они были бы в Режиме normal mode, если время остановки симуляции не является очень большим. Точно так же модели с большим количеством блоков диаграммы Stateflow или блоков MATLAB function не могут показать много улучшения скорости по сравнению с Режимом normal mode, если времена остановки симуляции не длинны.

В целях рисунка диаграмма представляет модель с большим количеством блоков диаграммы Stateflow или блоков MATLAB function. Кривая маркировала "Normal", имел бы намного меньшее начальное прошедшее время, чем показанный, если бы модель не содержала эти блоки.

Производительность, когда цели актуальны

Как показано прерывистыми линиями в фигуре (“все цели, актуальные”), время для программного обеспечения Simulink®, чтобы определить, актуальны ли цель Акселератора или Быстрый исполняемый файл Акселератора, является значительно меньше, чем время, требуемое сгенерировать код (“все цели, которые устарели”). Можно использовать в своих интересах эту характеристику, когда вы хотите протестировать различные компромиссы проекта.

Например, можно сгенерировать целевой код Режима Accelerator однажды и использовать его, чтобы моделировать модель с рядом настроек усиления. Это - особенно эффективный способ использовать Акселератор или Быстрые Режимы Accelerator, потому что этот тип изменения не приводит к целевому регенерируемому коду. Это означает, что целевой код сгенерирован в первый раз образцовые выполнения, но на последующих выполнениях код Simulink проводит только время, необходимое, чтобы проверить, что цель актуальна. Этот процесс намного быстрее, чем генерация кода, таким образом, последующие выполнения могут быть значительно быстрее, чем начальное выполнение.

Поскольку проверка целей более быстра, чем генерация кода, точка перехода меньше, когда цель актуальна чем тогда, когда код должен быть сгенерирован. Это означает, что последующие выполнения вашей силы модели моделируют быстрее в Акселераторе или Быстром Режиме Accelerator когда по сравнению с Режимом normal mode, даже для коротких времен остановки.

Измерьте уровень

Можно использовать tic, toc и команды sim, чтобы сравнить Режим Accelerator или Быстрые времена выполнения Режима Accelerator к Режиму normal mode.

  1. Откройте свою модель.

  2. Из меню Simulation> Mode выберите Normal.

  3. Используйте tic, toc и команды sim при приглашении командной строки измериться, сколько времени модель берет, чтобы моделировать в Режиме normal mode:

    tic,[t,x,y]=sim('myModel',10000);toc

    tic и toc работают совместно, чтобы записать и возвратить прошедшее время и отобразить сообщение, такое как следующее:

    Elapsed time is 17.789364 seconds.

  4. Выберите Accelerator или Rapid Accelerator из меню Simulation> Mode, и создайте исполняемый файл для модели путем нажатия кнопки Run. Ускоряющие режимы используют этот исполняемый файл в последующих симуляциях, пока модель остается структурно неизменной. Регенерация кода в Ускоренных Моделях обсуждает вещи, которые заставляют вашу модель восстанавливать.

  5. Повторно выполните скомпилированную модель в командной строке:

    tic,[t,x,y]=sim('myModel',10000);toc

  6. Отображенное прошедшее время показывает время выполнения для ускоренной модели. Например:

    Elapsed time is 12.419914 seconds.
    

Различие в прошедшие времена (5,369450 секунд в этом примере) показывает улучшение, полученное путем ускорения модели.

Связанные примеры

Больше о