Лабораторная работа № 10. Лабораторная работа 10. Разработка тестовых модулей проекта для тестирования отдельных модулей
Скачать 15.49 Kb.
|
Лабораторная работа № 10. Разработка тестовых модулей проекта для тестирования отдельных модулей Цель занятия: Ознакомление с видами оптимизации программы, оптимизация индивидуального модуля по выбранному параметру (время выполнения, объем памяти). Оборудование, технические и программные средства: персональный компьютер, среда программирования Visual Studio 2019. Продолжительность занятия:2 часа. Задание: Разработать тестовые модулей проекта для тестирования отдельных модулей, провести оптимизацию программы по выбранному параметру. Теоретические сведения: Оптимизация – преобразование программы, сохраняющее ее семантику (конструкции языка программирования), но уменьшающие ее размер и время выполнения. Виды оптимизация программы: глобальная (всей программы); локальная (нескольких соседних операторов, образующих линейный участок); квазилокальная (фрагментов программы фиксированной структуры, например, циклов). Способы оптимизации: 1. Разгрузка участков повторяемости: вынесение вычислений из многократно проходимых исполняемых участков программы на участки программы, редко проходимые. Таким образом, это преобразование тела цикла или рекурсивных процедур. 2. Упрощение действий: улучшение программы за счет замены групп вычислений на группу вычислений, дающих тот же результат с точки зрения всей программы, но имеющих меньшую сложность. а) упрощение действий происходит при замене сложных операций в выражениях более простыми: x / 0.4 -> x*0.25; б) преобразование по объединению или расчленению циклов, по перестановке заголовков циклов, по удалению избыточных выражений (замене их на переменную). 3. Реализация действия: действия над константами заменяются на константы; ликвидация константных распознавателей -замена условного оператора на одну из его ветвей, если его выбирающее условие-выражение имеет постоянное значение; удаление из программы ненужных пересылок вида: Y=F(W), X=Y на X=F(W) 4. Чистка программы (удаление ненужных конструкций): недостижимых операторов, существенных операторов, неиспользуемых переменных, видов, операций. 5. Сокращение размера программы: вынесение одинаковых конструкций в начальную или конечную точку программы; поиск в программе похожих объектов и формирование их в виде процедуры. 6. Экономия памяти -уменьшение объема памяти, отводимые под информационные объекты программы (например, параметры процедуры). Выполнение работы: 1. Для индивидуального модуля выбрать параметр оптимизации и определить его количественные характеристики. 2. Провести оптимизацию программы по выбранному параметру. 3. Сравнить характеристики исходного модуля и модуля, полученного в результате оптимизации. 4. Оформить отчет, содержащий описание, обоснование и результаты оптимизации программы. Требования к отчету: Текст должен быть написан шрифтом Times New Roman, 12. Интервал между строками и абзацами – 1,5. Отступ слева 1,5. Ориентация текста – по ширине страницы. Скриншоты необходимо подписать. Название практической работы, цель работы, ход работы, вывод, ответы на контрольные вопросы, должны быть выделены жирным шрифтом, так же как в методичке. Контрольные вопросы: 1. Почему необходимо проводить оптимизацию, а не минимизацию программы? 2. От чего зависит выбор метода оптимизации? 3. Почему большое внимание уделяется циклическим участкам? 4. К каким нежелательным последствиям может привести оптимизация? |