litceysel.ru
добавить свой файл
1 2 ... 7 8


САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Математико-механический факультет


Кафедра системного программирования


Теоретический анализ и разработка методик оценки достоверности информации, получаемой современными профайлерами


Дипломная работа студента 545 группы


Булычева Ивана Дмитриевича



Научный руководитель

………………
/ подпись /

старший преподаватель

Баклановский М.В.

Рецензент

………………
/ подпись /




“Допустить к защите”

заведующий кафедрой

………………
/ подпись /

д.ф.-м.н., проф.

Терехов А.Н.



Санкт-Петербург

2011

SAINT PETERSBURG STATE UNIVERSITY

Mathematics & Mechanics Faculty


Software Engineering Chair


Theoretical analysis and development of techniques for estimating the reliability of information obtained by modern profilers


by

Ivan, Bulychev


Master’s thesis



Supervisor

………………

associate teacher
M.V. Baklanovsky

Reviewer


………………




“Approved by”
Head of Department

………………

professor A. N. Terekhov



Saint Petersburg

2011

Содержание


Содержание 4

Вступление 7


1. Обзор 9

1.1. Определение профайлера 9

1.2. История профайлера 11

1.3. Многообразие профайлеров 12

1.4. Современные профайлеры 13

1.5. Принципы работы современных профайлеров 14

1.5.1. Семплирование 14

1.5.2. Инструментирование 15

1.6. Обзор современных профайлеров 16

1.6.1. Intel VTune performance analyzer 16

1.6.1.1. Описание 16

1.6.1.2. Принцип работы 16

1.6.2. AMD CodeAnalyst 19

1.6.3. AQTime 20

1.6.4. Метод подсчета инструкций 20

1.7. Используемые единицы измерений 21

2. Постановка задачи 23

2. Описание разработанного инструмента 24

2.1. Курсовая работа 24

2.1.1. Идея метода подсчета инструкций 24

2.1.2. Инициализация 25

2.1.3. Исполнение 26

2.2. Дальнейшая разработка 27

2.2.1. Временные оценки для отдельных инструкций 27

2.2.2. Расширен набор обрабатываемых инструкций 28

2.2.3. Внедрение и профайлинг 28

2.2.4. Подсчет времени работы приложения 29

3. Анализ 30

3.1. Проблемы измерений 30

3.2. Причины погрешностей и особенностей в измерениях 31

3.3. Задачи, с которыми работает профайлер 32

4. Тестирование 33


4.1. Перечень проводимых экспериментов 33

4.2. Область применимости 33

4.2.1. Результат 33

4.2.2. Комментарии к результатам 33

4.3. Порядок проведения экспериментов 34

4.4. Единые единицы измерений 35

4.4.1. AMD CodeAnalyst. Timer Samples в миллисекунды 35

4.4.2. Intel VTune. Unhalted cycles в миллисекунды 35

4.4.3. Калибровка метода подсчета инструкций 36

4.5. Эксперимент “Использование оперативной памяти” 36

4.5.1. Использование ”нагрузки” 37

4.5.2. Минимальное использование оперативной памяти 37

4.5.3. Активное использование оперативной памяти 37

4.5.4. Использование оперативной памяти с частыми промахами кеша 38

4.6. Эксперимент “Предсказания ветвлений” 38

4.6.1. Эксперимент “Вариация длины цикла” 38

4.6.2. Эксперимент “Периодически выполняемые операции” 39

4.7. Эксперимент “Потеря контекста” 39

4.8. Эксперимент “Выравнивание данных” 39

4.9. Эксперимент “Вызовы процедур” 40

5. Результаты 41

5.1. Современные методы профайлинга 41

5.1.1. Выявленные ошибки 41

5.1.2. Выявленные недостатки 41

5.1.3. Сравнение профайлеров между собой 42

5.1.4. Проблемы, возникшие при тестировании 42

5.2. Преимущества метода подсчета инструкций 43

6. Выводы 44

7. Заключение 45

8. Глоссарий 47

9. Литература 48

Приложение 52

Приложение 1. “Минимальное использование оперативной памяти” 52

Приложение 2. “Активное использование оперативной памяти” 53

Приложение 3. “Использование оперативной памяти с частыми промахами кеша” 54

Приложение 4. “Вариация длины цикла” 56

Приложение 5. “Периодически выполняемые операции” 57

Приложение 6. “Вынужденная потеря контекста” 58

Приложение 7. “Выравнивание данных” 59

Приложение 8. “Вызовы процедур” 60

Приложение 9. “Результаты тестирования” 61





следующая страница >>