Вообще говоря, достижение работоспособности программы — лишь один из этапов ее отладки. Не менее важным вопросом является
оптимизация
программы по минимуму времени исполнения или по минимуму объема кодов. Современные
компьютеры, в которых используется система MATLAB, имеют достаточные резервы памяти, так что размеры программы, как правило, не имеют особого значения. Намного важнее проблема оптимизации программы в части быстродействия.
Оценка времени исполнения отдельных частей программы называется ее
профилированием.
Для выполнения такой процедуры служит команда profile [
Средства профилирования MATLAB позволяют анализировать только m-файлы функций, но не сценариев. Чтобы получить профиль выполнения сценария, приходится преобразовывать его в функции (как правило, не имеющую входных и выходных параметров), добавляя соответствующий заголовок function.
], имеющая ряд опций:
profile fun — запуск профилирования для функции fun;
profile report — вывод отчета о профилировании;
profile plot — графическое представление результатов профилирования в виде диаграммы Парето;
profile filename — профилирование файла с заданным именем и путем;
prof ile report N — вывод отчета по профилированию заданных N строк;
profile report frac — выводит отчет по профилированию тех строк, относительная доля выполнения которых в общем времени выполнения составляет не менее чем frac (от 0.0 до 1.0);
profileon — включение профилирования;
profile off — выключение профилирования;
profile reset — выключение профилирования с уничтожением всех накопленных данных;
INFO = profile — возвращает структуру со следующими полями:
file — полный путь к профилируемому файлу;
interval — интервалы времени в секундах;
count — вектор измерений;
state — состояние профилировщика: 'on' (включен) или 'off (выключен).
Ниже приводится пример на профилирование m-файла ellipj (эллиптическая функция Якоби):
» profile on