Для студентов СПбГУ по предмету Любой или несколько предметовРазработка программной системы на основе LLVM для оптимизации задержки в высоконагруженных секциях кода C++-приложенийРазработка программной системы на основе LLVM для оптимизации задержки в высоконагруженных секциях кода C++-приложений
4,9551047
2024-08-042024-08-04СтудИзба
Курсовая работа: Разработка программной системы на основе LLVM для оптимизации задержки в высоконагруженных секциях кода C++-приложений
Описание
Содержание
2
3.4. Размеры исполняемых файлов . . . . . . . . . . . . . . . . . 28 Выводы.................................... 29Заключение................................. 31Благодарность................................ 32Списоклитературы ............................ 33Приложения................................. 37
3
Введение
Написать код с минимальной асимптотической сложностью – не значит написать оптимальный с точки зрения задержки код: нередко решающим фактором является компилятор, а именно его оптимизации, производящиеся над программой.
Одной из самых важных оптимизаций компилятора является встраи-вание функций [2] – замена вызова функции непосредственно телом функ-ции. Данная работа направлена на создание программн
| Введение................................... | 4 | |
| Постановказадачи............................. | 5 | |
| 1. Обзорный раздел по предметной области . . . . . . . . . . . . . . | 6 | |
| 1.1. | Встраиваниефункции...................... | 6 |
| 1.2. | LLVM............................... | 7 |
| 1.3. | Аналоги ............................. | 7 |
| 1.4. | Обзорлитературы........................ | 8 |
| 1.4.1 | Aggressive Function Splitting for Partial Inlining . . . . . | 8 |
| 1.4.2 | Automatic Tuning of Inlining Heuristics . . . . . . . . . . | 8 |
| 1.4.3 | Function Inlining with Code Size Limitation in Embedded | |
| Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . | 9 | |
| 1.5.Вывод............................... | 9 | |
- Программнаяреализация....................... 11
| 2.1. | Основныекомпоненты ..................... | 11 | |
| 2.2. | Локальныйоптимизатор .................... | 12 | |
| 2.2.1 | Добавлениеатрибута.................... | 12 | |
| 2.2.2 | Встраиваниефункций ................... | 14 | |
| 2.2.3 | Агрессивность встраивания функций . . . . . . . . . . . | 16 | |
| 2.2.4 | Промежуточный результат . . . . . . . . . . . . . . . . | 16 | |
| 2.3. | Оптимизатор........................... | 17 | |
| 2.4. | Модификатор .......................... | 19 | |
| 2.5. | Исполнитель........................... | 22 | |
| 2.6. | Примериспользования ..................... | 22 | |
| 3.Тестированиеирезультаты...................... | 24 | ||
| 3.1. | Тестирование .......................... | 24 | |
| 3.2. | Проектыдлятестирования . . . . . . . . . . . . . . . . . . . | 24 | |
| 3.3. | Измерениезадержки ...................... | 25 | |
| 3.3.1 | RedBlackTree . . . . . . . . . . . . . . . . . . . . . . . . | 25 | |
| 3.3.2 | tinyxml2 . . . . . . . . . . . . . . . . . . . . . . . . . . . | 26 | |
| 3.3.3 | treap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 26 | |
| | | | |
2
3.4. Размеры исполняемых файлов . . . . . . . . . . . . . . . . . 28 Выводы.................................... 29Заключение................................. 31Благодарность................................ 32Списоклитературы ............................ 33Приложения................................. 37
3
Введение
- современном мире существует огромное количество программного обеспечения, написанного на C++. Считается, что данный язык программи-рования является очень быстрым. Тем не менее существуют сферы, требую-щие от программы высокой производительности, которая недостижима лишь удачным выбором языка.
Написать код с минимальной асимптотической сложностью – не значит написать оптимальный с точки зрения задержки код: нередко решающим фактором является компилятор, а именно его оптимизации, производящиеся над программой.
- сферах, нуждающихся в высокопроизводительном коде, есть потреб-ность в применении дополнительных оптимизаций. С этой задачей обычно достаточно хорошо справляется компилятор, предоставляющий, например, флаги компиляции [1]. При включенных оптимизационных флагах компи-ляции часто достигается удовлетворяющий пользователя результат, однако далеко не всегда этого достаточно.
Одной из самых важных оптимизаций компилятора является встраи-вание функций [2] – замена вызова функции непосредственно телом функ-ции. Данная работа направлена на создание программн
Характеристики курсовой работы
Учебное заведение
Семестр
Просмотров
1
Размер
425 Kb
Список файлов
Разработка программной системы на основе LLVM для оптимизации задержки в высоконагруженных секциях кода C++-приложений.doc
Комментарии
Нет комментариев
Стань первым, кто что-нибудь напишет!
СПбГУ
Tortuga















