13
Исследование и тестирование семплирующего метода профайлинга на примере профилировщика производительности Intel VTune Amplifier XE 2011 Выполнил: Одеров Роман, 345 гр. Научный руководитель: Баклановский М.В., ст. преподаватель кафедры СП 2012

Выполнил: Одеров Роман, 345 гр. Научный руководитель: Баклановский М.В.,

  • Upload
    phuc

  • View
    91

  • Download
    5

Embed Size (px)

DESCRIPTION

Исследование и тестирование семплирующего метода профайлинга на примере профилировщика производительности Intel VTune Amplifier XE 2011. Выполнил: Одеров Роман, 345 гр. Научный руководитель: Баклановский М.В., ст. преподаватель кафедры СП. 2012. Повысить производительность!. - PowerPoint PPT Presentation

Citation preview

Page 1: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

Исследование и тестирование семплирующего метода профайлинга

на примере профилировщика производительности

Intel VTune Amplifier XE 2011

Выполнил:Одеров Роман, 345 гр.

Научный руководитель:Баклановский М.В.,

ст. преподаватель кафедры СП

2012

Page 2: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

2

Повысить производительность!

Page 3: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

3

Методы профайлинга

• Семплирование– Периодический замер системных счетчиков

• Инструментирование– Добавление в код специальных команд,

осуществляющих сбор информации о ее работе

Page 4: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

4

Достоинства и недостатки методов

• Семплирование+ относительная простота+ не изменяет код программы- статистический подход

• Инструментирование+ точность- изменение кода программы

Page 5: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

5

Существующие продукты

Intel VTune Amplifier XEMicrosoft xPerf

AMD CodeAnalyst

СЕМПЛИРОВАНИЕ

Page 6: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

6

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

Определить

• недостатки семплирования

• слабые места профайлера

• влияние на производительность системы

Page 7: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

7

“Simple Asm”

<…>mov rcx, 10000000000l1:mov rax,rbploop l1<…>

Функция, выполняющая mov ‘rcx’ раз

Результат: не обнаружено ничего лишнего без VTune ~ 16316 мс с VTune ~16458 мс

Page 8: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

8

Main AExternal AMiddle AInternal

“FunctionStackTest”

Вложенные функции

Результат: с оптимизацией профайлер обнаружилтолько функции main и AMiddle.Без оптимизации – все.С VTune ~ 9000 мсБез VTune ~ 9000 мс

Page 9: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

9

“CreateProcessesTest”NewProcessCreateAndExit(){

<...>CreateProcess(“EmptyFunction.exe”,...);<...>

}

Main(){for (i = 0; i < quantity; i++) NewProcessCreateAndExit();

}

Функция, создающая “пустые” процессы

Результат: 500 процессов без VTune ~ 18 секунд500 процессов с VTune ~ 15 минут

Замечание: сбор результатов ~ 30 минут

Page 10: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

10

Оценка пропущенных вызовов

Идея: • вызывать в циклах (в разных местах программы П1)

функцию IncCounter()• замерить время работы функции с профайлером/без

профайлера• оценить замедление (накладные расходы по времени)

и количество пропущенных вызовов.

Реализация:• Дополнительная программа (П2), реализующая подсчет

времени работы только функции IncCounter()

Page 11: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

13

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

вызванные аппроксимирующей техникой

Способ:из стека вызовов функций соорудить

распределенную (во времени) “пилу”

Реализация:нужно вызывать различные функции N раз “в

глубину”, причем N будет выбираться случайно

“Saw”

Page 12: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

14

Состояние стека во времени

tГлуб

ина

вло

жен

ност

и ф

ункц

ий

Series1

0

2

4

6

Page 13: Выполнил: Одеров  Роман, 345 гр. Научный руководитель: Баклановский М.В.,

15

Результаты

• Выявлены недостатки семплирования– Функция может быть незамеченной, даже если работает

большую часть времени– Функция может быть отражена, как hotspot, даже если

работает ничтожно малое время• Накоплен набор тестов, подтверждающих выдвинутые

гипотезы• Замечено серьезное влияние на производительность

Планы на будущее• Продолжение разработки прототипа профайлера ядра MS

WS2008 R2 x64