1 / 13

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

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

phuc
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Методы профайлинга • Семплирование • Периодический замер системных счетчиков • Инструментирование • Добавление в код специальных команд, осуществляющих сбор информации о ее работе

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

  5. Существующие продукты СЕМПЛИРОВАНИЕ Intel VTune Amplifier XE Microsoft xPerf AMD CodeAnalyst

  6. Постановка задачи Определить • недостатки семплирования • слабые места профайлера • влияние на производительность системы

  7. “Simple Asm” • <…> • movrcx, 10000000000 • l1: • movrax,rbp • loop l1 • <…> Функция, выполняющая mov‘rcx’ раз Результат: не обнаружено ничего лишнего без VTune~ 16316 мс с VTune~16458 мс

  8. “FunctionStackTest” • Main • AExternal • AMiddle • AInternal Вложенные функции Результат:с оптимизацией профайлер обнаружил только функции main и AMiddle. Без оптимизации – все. С VTune~ 9000 мс Без VTune~ 9000 мс

  9. “CreateProcessesTest” • NewProcessCreateAndExit(){ • <...> • CreateProcess(“EmptyFunction.exe”,...); • <...> • } • Main(){ • for (i = 0; i < quantity; i++) • NewProcessCreateAndExit(); • } Функция, создающая “пустые” процессы Результат:500 процессов без VTune~ 18 секунд 500 процессов сVTune ~ 15 минут Замечание:сбор результатов~ 30 минут

  10. Оценка пропущенных вызовов Идея: • вызывать в циклах (в разных местах программы П1) функцию IncCounter() • замерить время работы функции с профайлером/без профайлера • оценить замедление (накладные расходы по времени) и количество пропущенных вызовов. Реализация: • Дополнительная программа (П2), реализующая подсчет времени работы только функции IncCounter()

  11. “Saw” Цель: выявить ошибки семплирующего подхода, вызванные аппроксимирующей техникой Способ: из стека вызовов функций соорудить распределенную (во времени) “пилу” Реализация: нужно вызывать различные функции N раз “в глубину”, причем N будет выбираться случайно

  12. Состояние стека во времени Глубина вложенности функций t

  13. Результаты • Выявлены недостатки семплирования • Функция может быть незамеченной, даже если работает большую часть времени • Функция может быть отражена, как hotspot, даже если работает ничтожно малое время • Накоплен набор тестов, подтверждающих выдвинутые гипотезы • Замечено серьезное влияние на производительность Планы на будущее • Продолжение разработки прототипапрофайлера ядра MS WS2008 R2 x64

More Related