Для студентов МГУ им. Ломоносова по предмету ДругиеТеоретический анализ и разработка методик оценки достоверности информации, получаемой современными профайлерамиТеоретический анализ и разработка методик оценки достоверности информации, получаемой современными профайлерами
2024-08-242024-08-24СтудИзба
ВКР: Теоретический анализ и разработка методик оценки достоверности информации, получаемой современными профайлерами
Описание
Содержание
Содержание............................................................................................... 3
Вступление................................................................................................ 6
1. Обзор..................................................................................................... 8
1.1. Определение профайлера.................................................................................................. 8
1.2. История профайлера........................................................................................................ 10
1.3. Многообразие профайлеров............................................................................................ 11
1.4. Современные профайлеры.............................................................................................. 12
1.5. Принципы работы современных профайлеров............................................................. 13
1.5.1. Семплирование............................................................................................................. 13
1.5.2. Инструментирование..................................................................................................... 14
1.6. Обзор современных профайлеров.................................................................................. 15
1.6.1. Intel VTune performance analyzer.................................................................................... 15
1.6.1.1. Описание.................................................................................................................... 15
1.6.1.2. Принцип работы......................................................................................................... 16
1.6.2. AMD CodeAnalyst.......................................................................................................... 18
1.6.3. AQTime......................................................................................................................... 19
1.6.4. Метод подсчета инструкций.......................................................................................... 19
1.7. Используемые единицы измерений............................................................................... 20
2. Постановка задачи.............................................................................. 22
3. Описание разработанного инструмента.............................................. 23
3.1. Курсовая работа............................................................................................................... 23
3.1.1. Идея метода подсчета инструкций................................................................................ 23
3.1.2. Инициализация.............................................................................................................. 24
3.1.3. Исполнение................................................................................................................... 25
3.2. Дальнейшая разработка................................................................................................... 26
3.2.1. Временные оценки для отдельных инструкций............................................................. 26
3.2.2. Расширен набор обрабатываемых инструкций.............................................................. 27
3.2.3. Внедрение и профайлинг............................................................................................... 27
3.2.4. Подсчет времени работы приложения........................................................................... 28
4. Анализ................................................................................................. 29
4.1. Проблемы измерений....................................................................................................... 29
4.2. Причины погрешностей и особенностей в измерениях............................................... 30
3
4.3. Задачи, с которыми работает профайлер....................................................................... 31
5. Тестирование....................................................................................... 32
5.1. Перечень проводимых экспериментов.......................................................................... 32
5.2. Область применимости.................................................................................................... 32
5.2.1. Результат....................................................................................................................... 32
5.2.2. Комментарии к результатам.......................................................................................... 32
5.3. Порядок проведения экспериментов.............................................................................. 33
5.3.1. Автоматизация тестирования........................................................................................ 34
5.4. Единые единицы измерений........................................................................................... 35
5.4.1. AMD CodeAnalyst. Timer Samples в миллисекунды....................................................... 35
5.4.2. Intel VTune. Unhalted cycles в миллисекунды................................................................ 35
5.4.3. Калибровка метода подсчета инструкций..................................................................... 36
5.5. Эксперимент “Использование оперативной памяти”................................................... 36
5.5.1. Использование ”нагрузки”............................................................................................ 37
5.5.2. Минимальное использование оперативной памяти....................................................... 37
5.5.3. Активное использование оперативной памяти.............................................................. 37
5.5.4. Использование оперативной памяти с частыми промахами кеша................................. 38
5.6. Эксперимент “Предсказания ветвлений”...................................................................... 38
5.6.1. Эксперимент “Вариация длины цикла”......................................................................... 38
5.6.2. Эксперимент “Периодически выполняемые операции”................................................ 39
5.7. Эксперимент “Потеря контекста”.................................................................................. 39
5.8. Эксперимент “Выравнивание данных”.......................................................................... 39
5.9. Эксперимент “Вызовы процедур”.................................................................................. 40
6. Результаты.......................................................................................... 41
6.1. Комментарии к результатам тестирования.................................................................... 41
6.1.1. Эксперимент “Использование оперативной памяти”.................................................... 41
6.1.2. Эксперимент “Предсказания ветвлений”....................................................................... 41
6.1.3. Эксперимент “Потеря контекста”.................................................................................. 42
6.1.4. Эксперимент “Выравнивание данных”.......................................................................... 42
6.1.5. Эксперимент “Вызовы процедур”................................................................................. 43
6.2. Современные методы профайлинга............................................................................... 43
6.2.1. Выявленные ошибки..................................................................................................... 43
6.2.2. Выявленные недостатки................................................................................................ 43
6.2.3. Сравнение профайлеров между собой........................................................................... 44
6.2.4. Проблемы, возникшие при тестировании...................................................................... 44
4
6.3. Преимущества метода подсчета инструкций................................................................ 45
6.4. Рекомендации по использованию профайлеров........................................................... 46
7. Выводы............................................................................................... 48
8. Заключение......................................................................................... 49
9. Глоссарий............................................................................................ 51
10. Литература........................................................................................ 52
Приложение............................................................................................ 56
Приложение 1. “Минимальное использование оперативной памяти”.............................. 56
Приложение 2. “Активное использование оперативной памяти”...................................... 57
Приложение 3. “Использование оперативной памяти с частыми промахами кеша”....... 58
Приложение 4. “Вариация длины цикла”............................................................................. 60
Приложение 5. “Периодически выполняемые операции”.................................................. 61
Приложение 6. “Вынужденная потеря контекста”.............................................................. 62
Приложение 7. “Выравнивание данных”.............................................................................. 63
Приложение 8. “Вызовы процедур”...................................................................................... 64
Приложение 9. “Результаты тестирования”......................................................................... 65
5
Вступление
Данная работа является продолжением работы [40], в которой
предпринималась попытка разработать альтернативный метод тестирования производительности программ.
Главе 1 “Обзор” будет приведен исторический обзор этапов развития средств профайлинга, обзор на
Содержание............................................................................................... 3
Вступление................................................................................................ 6
1. Обзор..................................................................................................... 8
1.1. Определение профайлера.................................................................................................. 8
1.2. История профайлера........................................................................................................ 10
1.3. Многообразие профайлеров............................................................................................ 11
1.4. Современные профайлеры.............................................................................................. 12
1.5. Принципы работы современных профайлеров............................................................. 13
1.5.1. Семплирование............................................................................................................. 13
1.5.2. Инструментирование..................................................................................................... 14
1.6. Обзор современных профайлеров.................................................................................. 15
1.6.1. Intel VTune performance analyzer.................................................................................... 15
1.6.1.1. Описание.................................................................................................................... 15
1.6.1.2. Принцип работы......................................................................................................... 16
1.6.2. AMD CodeAnalyst.......................................................................................................... 18
1.6.3. AQTime......................................................................................................................... 19
1.6.4. Метод подсчета инструкций.......................................................................................... 19
1.7. Используемые единицы измерений............................................................................... 20
2. Постановка задачи.............................................................................. 22
3. Описание разработанного инструмента.............................................. 23
3.1. Курсовая работа............................................................................................................... 23
3.1.1. Идея метода подсчета инструкций................................................................................ 23
3.1.2. Инициализация.............................................................................................................. 24
3.1.3. Исполнение................................................................................................................... 25
3.2. Дальнейшая разработка................................................................................................... 26
3.2.1. Временные оценки для отдельных инструкций............................................................. 26
3.2.2. Расширен набор обрабатываемых инструкций.............................................................. 27
3.2.3. Внедрение и профайлинг............................................................................................... 27
3.2.4. Подсчет времени работы приложения........................................................................... 28
4. Анализ................................................................................................. 29
4.1. Проблемы измерений....................................................................................................... 29
4.2. Причины погрешностей и особенностей в измерениях............................................... 30
3
4.3. Задачи, с которыми работает профайлер....................................................................... 31
5. Тестирование....................................................................................... 32
5.1. Перечень проводимых экспериментов.......................................................................... 32
5.2. Область применимости.................................................................................................... 32
5.2.1. Результат....................................................................................................................... 32
5.2.2. Комментарии к результатам.......................................................................................... 32
5.3. Порядок проведения экспериментов.............................................................................. 33
5.3.1. Автоматизация тестирования........................................................................................ 34
5.4. Единые единицы измерений........................................................................................... 35
5.4.1. AMD CodeAnalyst. Timer Samples в миллисекунды....................................................... 35
5.4.2. Intel VTune. Unhalted cycles в миллисекунды................................................................ 35
5.4.3. Калибровка метода подсчета инструкций..................................................................... 36
5.5. Эксперимент “Использование оперативной памяти”................................................... 36
5.5.1. Использование ”нагрузки”............................................................................................ 37
5.5.2. Минимальное использование оперативной памяти....................................................... 37
5.5.3. Активное использование оперативной памяти.............................................................. 37
5.5.4. Использование оперативной памяти с частыми промахами кеша................................. 38
5.6. Эксперимент “Предсказания ветвлений”...................................................................... 38
5.6.1. Эксперимент “Вариация длины цикла”......................................................................... 38
5.6.2. Эксперимент “Периодически выполняемые операции”................................................ 39
5.7. Эксперимент “Потеря контекста”.................................................................................. 39
5.8. Эксперимент “Выравнивание данных”.......................................................................... 39
5.9. Эксперимент “Вызовы процедур”.................................................................................. 40
6. Результаты.......................................................................................... 41
6.1. Комментарии к результатам тестирования.................................................................... 41
6.1.1. Эксперимент “Использование оперативной памяти”.................................................... 41
6.1.2. Эксперимент “Предсказания ветвлений”....................................................................... 41
6.1.3. Эксперимент “Потеря контекста”.................................................................................. 42
6.1.4. Эксперимент “Выравнивание данных”.......................................................................... 42
6.1.5. Эксперимент “Вызовы процедур”................................................................................. 43
6.2. Современные методы профайлинга............................................................................... 43
6.2.1. Выявленные ошибки..................................................................................................... 43
6.2.2. Выявленные недостатки................................................................................................ 43
6.2.3. Сравнение профайлеров между собой........................................................................... 44
6.2.4. Проблемы, возникшие при тестировании...................................................................... 44
4
6.3. Преимущества метода подсчета инструкций................................................................ 45
6.4. Рекомендации по использованию профайлеров........................................................... 46
7. Выводы............................................................................................... 48
8. Заключение......................................................................................... 49
9. Глоссарий............................................................................................ 51
10. Литература........................................................................................ 52
Приложение............................................................................................ 56
Приложение 1. “Минимальное использование оперативной памяти”.............................. 56
Приложение 2. “Активное использование оперативной памяти”...................................... 57
Приложение 3. “Использование оперативной памяти с частыми промахами кеша”....... 58
Приложение 4. “Вариация длины цикла”............................................................................. 60
Приложение 5. “Периодически выполняемые операции”.................................................. 61
Приложение 6. “Вынужденная потеря контекста”.............................................................. 62
Приложение 7. “Выравнивание данных”.............................................................................. 63
Приложение 8. “Вызовы процедур”...................................................................................... 64
Приложение 9. “Результаты тестирования”......................................................................... 65
5
Вступление
- этой работе будут рассматриваться, тестироваться и анализироваться современные инструменты профайлинга приложений.
Данная работа является продолжением работы [40], в которой
предпринималась попытка разработать альтернативный метод тестирования производительности программ.
- настоящее время можно наблюдать повышение интереса к производительности программ. Из-за того, что предельная тактовая частота процессора почти достигнута и совершенствование процессора совершается путем внедрения новых технологий оптимизации исполнения
- простым экстенсивным путем, много внимания уделяется эффективности исполнения программы. Поэтому профайлеры и другие инструменты оптимизации приложений становятся все более и более востребованными. Очень важно уметь классифицировать и сравнивать их между собой.
Главе 1 “Обзор” будет приведен исторический обзор этапов развития средств профайлинга, обзор на
Характеристики ВКР
Предмет
Учебное заведение
Семестр
Просмотров
1
Размер
453 Kb
Список файлов
Теоретический анализ и разработка методик оценки достоверности информации, получаемой современными профайлерами.doc