Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Рекомендации по созданию и отладке программ.




В настоящем пункте рассмотрены некоторые способы повышения эффективности создания программ в системе MATLAB, в том числе рекомендации в части повышения быстродействия программ и ее «читабельности».

1. Следует широко использовать комментарии при написании текста программы. Как уже отмечалось, язык программирования MATLAB является интерпретируемым языком высокого уровня, достаточно наглядным и интуитивно понятным, в нем отсутствуют малоинформативные низкоуровневые функции (подобные машинным кодам). Однако даже для того, чтобы разобраться в хорошо знакомой программе спустя некоторое время, полезно не пренебрегать комментариями. В идеале, можно и вовсе закомментировать каждый шаг выполнения программы.

Многие пользователи ограничиваются лишь добавлением комментария с описанием M-файла в начало программы (например, содержащего описание используемых алгоритмов или особенностей задания аргументов функции). Такие комментарии будут отображаться в командной строке после ввода команды

help имя_M-файла

Заметим, что в файл-программе комментарии с описанием кода необходимо размещать перед первым исполняемым оператором (т.е. перед первой непустой строкой), а в файл-функции – после заголовка функции.

2. Следует использовать поэлементные операции с массивами вместо циклов. При запуске программы на исполнение MATLAB интерпретирует команды, записанные в M-файлах в машинный код и по очереди их выполняет. Заметим, что если программа содержит циклы, то время, затрачиваемое системой на интерпретацию, увеличивается, причем каждая строка цикла интерпретируется столько раз, сколько раз будет прокручиваться цикл. В этой связи при создании программ следует, по возможности, избегать использования циклов. Такой подход тем более правомочен, если вспомнить, что MATLAB – это матричная система и аргументами соответствующих функций могут являться не только скалярные величины, но и массивы. В связи с этим MATLAB, в отличие от многих других языков программирования может заменять циклы for и while поэлементными операциями над массивами, что позволяет существенным образом снизить временные затраты на выполнение соответствующих программ.

3. Следует выделять память под массивы. На практике не всегда можно векторизовать алгоритм, заданный в цикле, однако можно использовать способы повышения скорости работы цикла. Для этого необходимо предварительно выделить память под массивы, заполнение которых осуществляется в цикле.

Так, например, программа решения простейшего примера создания вектор-строки x, длина которой с каждым следующим шагом цикла for увеличивается на один элемент и в результате достигнет 10000 элементов

x=0;

for k=2:10000

x(k)=x(k-1)+7;

end

может быть скорректирована в части использования функции zeros для предварительного создания и заполнения 10000 нулями массива, т.е.

x=zeros(1,10000);

for k=2:10000

x(k)=x(k-1)+7;

end

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

4. Следует использовать файл-функции. Программа всегда будет выполняться быстрее, если она реализована в виде файл-функции, а не как файл-программа. Созданную файл-программу несложно переделать в файл-функцию (не имеющую, как правило, входных и выходных параметров), добавив в соответствующем месте объявление function.

5. Следует использовать специальные настройки среды MATLAB. При первой загрузке содержимого M-файла в память компьютера система MATLAB осуществляет синтаксический разбор программного кода, переводит его во внутренний формат, называемый псевдокодом или p-кодом, после чего сохраняет псевдокод в памяти компьютера в течение всего сеанса работы с системой MATLAB. В результате первый вызов файл-функций выполняется медленнее (хотя обычно и ненамного медленнее) повторных вызовов. Можно несколько повысить эффективность первого выполнения M-функций, выполнив команду

pcode имя_файл-функции

которая транслирует содержимое M-файла в псевдокод и записывает на диск файл с тем же именем, но с расширением.p, после чего загрузка файл-функции будет выполняться именно из этого файла и первое исполнение файл-функции пройдет быстрее. Можно будет даже стереть файл с расширением.m, а содержимое оставшегося файла с псевдокодом будет невозможно прочитать в текстовых редакторах в силу бинарного формата этого файла – так можно скрыть детали реализованных в файл-функции алгоритмов.

6. Следует предусматривать многоуровневый контроль входных и выходных параметров файл-функции. Многочисленные проверки входных и выходных параметров файл-функции исключительно полезны, даже несмотря на то, что порой они занимают весьма значительный процент от общего объема программного кода. Связанное с этим документирование последнего важно как для сторонних пользователей функции, так и для самих разработчиков, поскольку документирование помогает им в процессе разработки и отладки алгоритма и деталей кодировки.

 

 

Часть 7.





Поделиться с друзьями:


Дата добавления: 2016-12-06; Мы поможем в написании ваших работ!; просмотров: 436 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Так просто быть добрым - нужно только представить себя на месте другого человека прежде, чем начать его судить. © Марлен Дитрих
==> читать все изречения...

2498 - | 2247 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.