Методы, чтобы улучшить производительность

Чтобы ускорить эффективность вашего кода, рассмотрите эти методы.

Среда

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

Структура кода

При организации кода:

  • Используйте функции вместо скриптов. Функции обычно быстрее.

  • Предпочтите локальные функции по вложенным функциям. Используйте эту практику особенно, если для функции не нужно к переменным доступа в основной функции.

  • Используйте модульное программирование. Чтобы избежать больших файлов и файлов с кодом, к которому нечасто получают доступ, разделите свой код в простые и связные функции. Эта практика может уменьшить новые затраты на запуск.

Методики программирования для производительности

Полагайте, что эти методики программирования улучшают производительность вашего кода.

  • Предварительно выделите — Вместо того, чтобы постоянно изменить размер массивов, считайте предварительное выделение максимальной суммы пробела требуемым для массива. Для получения дополнительной информации смотрите Предварительное выделение.

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

  • Поместите независимые операции вне циклов — Если код не оценивает по-другому с каждым for или while итерация цикла, переместите его за пределами цикла, чтобы избежать избыточных расчетов.

  • Создайте новые переменные, если тип данных изменяется — Создают новую переменную вместо того, чтобы присвоить данные другого типа к существующей переменной. Изменение класса или формы массивов существующей переменной занимает дополнительное время к процессу.

  • Используйте операторы короткой схемы — Использование, закорачивающее логические операторы, && и || если это возможно. Замыкание накоротко более эффективно, потому что MATLAB выполняет второй операнд только, когда результат не полностью определяется первым операндом. Для получения дополнительной информации смотрите Logical Operators: Short Circuit.

  • Избегайте глобальных переменных — Минимизация использования глобальных переменных является хорошей методикой программирования, и глобальные переменные могут уменьшить эффективность вашего кода MATLAB.

  • Постарайтесь не перегружаться созданный-ins — Стараются не перегружать встроенные функции на любых стандартных классах данных MATLAB.

  • Избегайте использования “данных как кода” — Если у вас есть значительные части кода (например, более чем 500 линий), которые генерируют переменные с постоянными значениями, рассматривают построение переменных и сохранение их, например, в MAT-файле или .csv файл. Затем можно загрузить переменные вместо того, чтобы выполнить код, чтобы сгенерировать их.

Советы на определенных функциях MATLAB

Рассмотрите следующие советы на определенных функциях MATLAB при записи эффективности критического кода.

  • Постарайтесь не очищать больше кода, чем необходимый. Не используйте clear all программно. Для получения дополнительной информации смотрите clear.

  • Избегайте функций, которые запрашивают состояние MATLAB, такого как inputnameкоторый, whos, существуйте (var), и dbstack. Самоанализ во время выполнения является в вычислительном отношении дорогим.

  • Избегайте функций, таких как evalevalcevalin, и feval (fname). Используйте вход указателя на функцию для feval когда это возможно. Косвенно выполнение выражения MATLAB из текста является в вычислительном отношении дорогим.

  • Избегайте программируемого использования cdaddpath, и rmpath, если это возможно. Изменение пути MATLAB в течение времени выполнения приводит к перекомпиляции кода.

Похожие темы