Файл: Исследование вычислительной эффективности объектноориентированных приложений.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.05.2024
Просмотров: 70
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
2. РАЗРАБОТКА ТЕХНИЧЕСКОГО ЗАДАНИЯ
2.1. Анализ вариантов использования программы
3.2. Определение попадания точки внутрь фигуры
4. ПРОЦЕДУРНОЕ ПРИЛОЖЕНИЕ НА БАЗЕ WPF/C#
4.1. Программные средства разработки
5. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРИЛОЖЕНИЕ НА БАЗЕ WPF/C#
5.1. Программные средства разработки
5.2. Логическое проектирование
5.4. Руководство системного программиста
6. АНАЛИЗ ВЫЧИСЛИТЕЛЬНОЙ ЭФФЕКТИВНОСТИ ПРИЛОЖЕНИЙ
7. УЛУЧШЕНИЕ ХАРАКТЕРИСТИК КАЧЕСТВА ПРИЛОЖЕНИЙ
7.1. Использование встроенной оптимизации кода
Файл MainWindow.xaml.cs (процедурное приложение)
Файл MainWindow.xaml.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 |
По данным результатам видно
, что затраты времени на работу программы уменьшились.