Оптимизация вычислений в Matlab
Oct. 13th, 2009 01:11 amВ следствие своей деятельности написал программу работы с изображениями для среды matlab. Суть не в программе, а в последующей оптимизации, которая привела к некоторым выводам, очевидным и не очень. Спасибо за чудесный профилировщик!
- Время выполнения скрипта гуляет в пределах до двух секунд. На больших файлах это может быть и не заметно, но факт есть.
- Вызов самописных функций в цикле замедляет программу. То же самое с работой с массивами. Чем присвоений меньше, тем лучше. Если вызываемая функция небольшая, то имеет смысл на последнем шаге оптимизаций вставить ее прямо в код.
- Размер массива лучше заранее задать, впрочем матлаб сам об этом предупреждает
- isequal и == в разных случаях показывают разную скорость, то один быстрее, то другой. Есть мнение, что это связано с (не)приведением типов
- Любой ввод-вывод в цикле вреден
- Счетчики в цикле нужно избегать
- удаление членов в больших массивов (связке с find) не так уж и быстро. Лучше не заполнять, чем удалять =)
Может, конечно, детский сад, но тем не менее
Оригинал: http://blog.dpetroff.ru/tech/matlab-optimization