can3p (can3p) wrote,
can3p
can3p

Оптимизация вычислений в Matlab

В следствие своей деятельности написал программу работы с изображениями для среды matlab. Суть не в программе, а в последующей оптимизации, которая привела к некоторым выводам, очевидным и не очень. Спасибо за чудесный профилировщик!

  1. Время выполнения скрипта гуляет в пределах до двух секунд. На больших файлах это может быть и не заметно, но факт есть.
  2. Вызов самописных функций в цикле замедляет программу. То же самое с работой с массивами.  Чем присвоений меньше, тем лучше. Если вызываемая функция небольшая, то имеет смысл на последнем шаге оптимизаций вставить ее прямо в код.
  3. Размер массива лучше заранее задать, впрочем матлаб сам об этом предупреждает
  4. isequal и == в разных случаях показывают разную скорость, то один быстрее, то другой. Есть мнение, что это связано с (не)приведением типов
  5. Любой ввод-вывод в цикле вреден
  6. Счетчики в цикле нужно избегать
  7. удаление членов в больших массивов (связке с find) не так уж и быстро. Лучше не заполнять, чем удалять =)

Может, конечно, детский сад, но тем не менее


Оригинал: http://blog.dpetroff.ru/tech/matlab-optimization
Tags: matlab, optimization, profile
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments