![]() |
+7 (495) 229-0436 | ![]() |
shopadmin@itshop.ru | 119334, г. Москва, ул. Бардина, д. 4, корп. 3 | ![]() |
![]() |
![]() |
|
|
Visual Studio 2010: работа с новым профайлером15.03.2010 15:39
![]() Снова для демонстрации я буду использовать приложение PeopleTrax, которое вы можете скачать с CodeBox. У меня есть отчет, который я собрал ранее используя функцию CPU Sampling в профайлере, в котором приложение сильно нагружает CPU (по крайне мере на одном ядре).
Мне хочется увидеть эти ресурсоемкие вызовы в моем коде, так что я щелкаю на GetNames (выделено сиреневым выше) чтобы вывести окно с деталями функции.
Здесь есть несколько вещей, на которые стоит обратить внимание:
![]() Теперь, на правой стороне представления, мы четко видим где происходят ресурсоемкие вызовы функций ReadLine() и Trim() в нашем коде. Кроме того, у нас в наличии есть таблица метрик в секции Function Performance Details и некоторые полезные по теме ссылки. Теперь, давайте взглянем на синие плашки. Левая плашка показывает методы, которые вызывают нашу функцию. Высота плашки представляет относительную стоимость в текущей выбранной метрике (в данном случае - Inclusive Samples). Так как в этом случае есть всего один вызывающий метод, он занимает всю площадь плашки. Справа другая плашка, которая содержит следующие секции:
Изучив код я не могу найти простого решения для его упрощения, я не могу контролировать работу Trim() или ReadLine(), так что давайте перейдем на один уровень выше в вызывающих функциях, щелкнув на GetPeople (это единственная функция, которая вызывает наш метод GetNames - прим. перев.).
Нажатие на GetPeople приводит к переходу на детали для данной функции:
Из кода на правой стороне мы можем узнать, что два подсвеченных вызова метода GetNames формируют 89.2% вызовов (экземпляров). Из-за того, что используется цикл, наверняка лучшей идеей будет вынести вызовы GetNames из цикла. Те кто изучают приложение PeopleTrax, знают, что первой оптимизацией для этого приложения является кеширование вызова GetNames в конструкторе. Следующим шагом исследования будет изменение кода, сбор новой информации профилирования и сравнения отчетов, но это я оставлю для вас. Имейте в виду: информация уровня строк кода доступна только в режиме профилирования CPU Sampling и недоступна в режиме Instrumentation mode. Подсветка и аннотации так же недоступны в режиме Instrumentation mode. Ссылки по теме |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.
На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.
|
119334, г. Москва, ул. Бардина, д. 4, корп. 3 +7 (495) 229-0436 shopadmin@itshop.ru |
|
© ООО "Interface Ltd." Продаем программное обеспечение с 1990 года |