Файл: Исследование вычислительной эффективности объектноориентированных приложений.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.05.2024

Просмотров: 71

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ПОСТАНОВКА ЗАДАЧИ

2. РАЗРАБОТКА ТЕХНИЧЕСКОГО ЗАДАНИЯ

2.1. Анализ вариантов использования программы

2.2. Требования к приложениям

3.АНАЛИЗ АЛГОРИТМА РЕШЕНИЯ

3.1. Метод Монте-Карло

3.2. Определение попадания точки внутрь фигуры

4. ПРОЦЕДУРНОЕ ПРИЛОЖЕНИЕ НА БАЗЕ WPF/C#

4.1. Программные средства разработки

4.3. Системные требования

4.4. Структура приложения

4.5. Результаты работы

5. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРИЛОЖЕНИЕ НА БАЗЕ WPF/C#

5.1. Программные средства разработки

5.2. Логическое проектирование

5.4. Руководство системного программиста

5.5. Руководство программиста

5.6. Руководство оператора

5.7. Результаты работы

6. АНАЛИЗ ВЫЧИСЛИТЕЛЬНОЙ ЭФФЕКТИВНОСТИ ПРИЛОЖЕНИЙ

7. УЛУЧШЕНИЕ ХАРАКТЕРИСТИК КАЧЕСТВА ПРИЛОЖЕНИЙ

7.1. Использование встроенной оптимизации кода

7.2. Профилирование

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЕ

Файл MainWindow.xaml.cs (процедурное приложение)

Файл MainWindow.xaml

Файл MainWindow.xaml.cs (объектно-ориентированное приложение)

Файл MainWindow.xaml

Файл Figure.cs

Файл Rectangle.cs

Файл Triangle.cs

Файл MonteCarlo.cs



5.6.3. Выполнение приложения

Для запуска приложения необходимо запустить oop_kurs_oop.exe. Для выполнения приложения можно выбрать режим работы с примером по умолчанию или ввести свои данные и нажать кнопку «Вычислить».

В случае если выбран первый вариант, приложение выполнит необходимые расчёты с заранее установленным набором данных, а результаты выведет на экран. Во втором случае необходимые данные нужно ввести самостоятельно, после чего будут выполнены расчёты, а полученные данные будут выведены на экран. После вывода данных на экран можно выполнить перерасчёт с теми же входными данными, с другими данными, или же выйти из приложения.

В случае неправильного ввода данных на экран могут быть выведены следующие сообщения об ошибках:

1) «Заданы не все координаты». Данное сообщение появляется, если пользователь оставил одно или несколько полей незаполненными.

2) «Точки заданы неверно». Данное сообщение появляется, если пользователь ввел координаты точек, неподходящие для создания фигуры. Координата x точки c должна быть больше координаты x точки a, и координата y точки c должна быть больше координаты y точки a, а точка k должна лежать между a и c.

5.7. Результаты работы


На рис. 17 представлены результаты работы объектно-ориентированного настольного приложения на базе WPF/C#.



Рис. 17. Результаты работы настольного объектно-ориентированного приложения на базе WPF/C#

6. АНАЛИЗ ВЫЧИСЛИТЕЛЬНОЙ ЭФФЕКТИВНОСТИ ПРИЛОЖЕНИЙ


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

И процедурное, и объектно-ориентированное приложения запускались с входными данными по умолчанию, то есть получали на вход заранее определённые одинаковые значения. В результате работы каждое приложение осуществляло вычисление с различным количеством точек и выводило данные об экспериментах на экран. Результаты зависимости времени расчёта от количества генерируемых точек для процедурного и объектно-ориентированного приложений приведены в таблице 1.


Таблица 1. Сравнение вычислительной эффективности приложений

Количество точек

Время выполнения, мс

Процедурное приложение на базе WPF/C#

Объектно-ориентированное приложение на базе WPF/C#

1000

0

0

10000

0

0

100000

7

9

1000000

74

109

10000000

755

1032

Как видно из таблицы 1, процедурное приложение работает быстрее объектно-ориентированного, что особенно становится заметно при большем количестве генерируемых точек.

Системная конфигурация машины, на которой проводились исследования:

  • операционная система: Windows 10;

  • центральный процессор: Ryzen 5 3500x (6 ядер; тактовая частота: 3.6 GHz; кэш-память: 32 МБ);

  • оперативная память: 16 Гб.

7. УЛУЧШЕНИЕ ХАРАКТЕРИСТИК КАЧЕСТВА ПРИЛОЖЕНИЙ

7.1. Использование встроенной оптимизации кода


В ходе выполнения данной курсовой работы был проведён ряд улучшений характеристик как процедурного, так и объектно-ориентированного приложений. Эти улучшения касаются в основном ускорения работы приложений и уменьшения количества занимаемой памяти.

Проекты Visual Studio имеют отдельные конфигурации выпуска и отладки для программы. Ранее в проектах использовалась конфигурация решений Debug, которая позволяла делать отладку программ и таким образом выявлять её ошибки. Так как приложения уже не требуют этого, в проектах будет использоваться конфигурация решений Release, которая будет значительно улучшать характеристики приложений за счет того, что в debug-режиме в сборку записываются все отладочные ресурсы, а в release – нет.

Сравним скорости процедурного и объектно-ориентированного приложения с использованием debug-режима и release-режима. Результаты работы приложений в данных режимах представлены на рисунках 17-20.

Как видно из результатов работы, процедурное приложение стало работать примерно в 2,5 раза быстрее, а объектно-ориентированное – примерно в два раза.



Рис. 17. Результаты работы настольного процедурного приложения с использованием debug-режима



Рис. 18. Результаты работы настольного процедурного приложения с использованием release-режима



Рис. 19. Результаты работы настольного объектно-ориентированного приложения с использованием debug-режима



Рис. 20. Результаты работы настольного объектно-ориентированного приложения с использованием release-режима

7.2. Профилирование


Средства профилирования Visual Studio можно использовать для анализа проблем с производительностью в приложении.
Выборка представляет собой метод профилирования, показывающий функции, которые выполняют основную часть работы в пользовательском режиме приложения. С выборки удобно начать поиск областей, позволяющих ускорить работу приложения.

Было проведено профилирование ЦП, которое показывает, какой метод является «узким местом» в программе, то есть имеет повышенную нагрузку.

На рис. 21 видно, что метод Distribution занимает более 41% от времени выполнения. Создание точек и присвоение каждой из них рандомных координат x, y в данном методе реализовано не совсем оптимально. После оптимизации запускаем вновь профилирование и видим, что метод занимает 40% времени выполнения, это показано на рис 22. Для малого количества точек результат практически не заметен, однако для большого количества точек разница во времени присутствует, а значит оптимизация выполнена не зря (рис.23).

В таблице 3 приведено сравнение результатов работы программы до использования профилирования и после.



Рис. 21. Первый отчет сеанса профилирования ОО приложения. Окно «Сводка»


Рис. 22. Второй отчет сеанса профилирования ОО приложения. Окно «Сводка»



Рис. 23. Результаты работы оптимизированного ОО приложения
Таблица 3. Результаты профилирования ОО приложения

Количество точек

Время выполнения, мс

До профилирования

После профилирования

1000

0

0

10000

1

1

100000

11

11

1000000

119

117

10000000

1179

1168

По данным результатам видно
, что затраты времени на работу программы уменьшились.