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

  • Ada

    Из спортивного интереса решил прочитать книжку по аде (язык программирования такой). Довольно интересно, есть прикольные штуки, но если попробовать…

  • Друзья рекоммендуют

    Есть уже давненько в ЖЖ раздел друзья рекоммендуют. Отличная идея, кстати, но как бы было здорово, если бы можно было этот раздел фильтровать! Я…

  • Весеннее обострение

    Зашел почитать новости про Амстердам на at5.nl (сайт/телеканал, который специализируется на Амстердаме и окрестностях) и от прочитанного немного…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments