Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом пошаговом руководстве рассказывается, как использовать средства профилирования в Visual Studio, чтобы оптимизировать производительность приложений SharePoint. Примером приложения служит приемник событий компонентов SharePoint, который содержит цикл простоя, что ведет к снижению производительности приемника событий компонентов. Профилировщик Visual Studio позволяет находить и устранять самые дорогие (самые медленные) части проекта, также известные как горячий путь.
В этом пошаговом руководстве демонстрируются следующие задачи:
Добавьте функцию и приемник событий признаков.
Настройте и разверните приложение SharePoint.
Запустите приложение SharePoint.
Просмотр и интерпретация результатов профиля.
Примечание.
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация среды IDE.
Необходимые компоненты
Для выполнения этого пошагового руководства требуются следующие компоненты:
Поддерживаемые редакции Microsoft Windows и SharePoint.
Visual Studio 2012.
Создание проекта SharePoint
Сначала создайте проект SharePoint.
Создание проекта SharePoint
В строке меню выберите "Файл>нового проекта">, чтобы отобразить диалоговое окно "Новый проект".
Разверните узел SharePoint в Visual C# или Visual Basic, а затем выберите узел 2010.
В области шаблонов выберите шаблон проекта SharePoint 2010.
В поле "Имя" введите ProfileTest и нажмите кнопку "ОК".
Откроется мастер настройки SharePoint.
На странице "Указание сайта и уровня безопасности для отладки" введите URL-адрес сайта сервера SharePoint, в котором требуется выполнить отладку определения сайта, или используйте расположение по умолчанию (имя системы http:///).
В разделе " Что такое уровень доверия для этого решения SharePoint?" , нажмите кнопку "Развернуть как решение фермы".
В настоящее время можно профилировать только решения фермы. Дополнительные сведения об изолированных решениях и решениях фермы см. в разделе "Изолированные решения".
Нажмите кнопку Готово . Проект отображается в Обозреватель решений.
Добавление приемника событий компонентов и компонентов
Затем добавьте в проект компонент вместе с приемником событий для этого компонента. Этот приемник событий будет содержать код для профилирования.
Добавление компонента и приемника событий компонента
В Обозреватель решений откройте контекстное меню узла "Компоненты", нажмите кнопку "Добавить функцию" и оставьте имя в значении по умолчанию Feature1.
В Обозреватель решений откройте контекстное меню компонента Feature1 и нажмите кнопку "Добавить приемник событий".
В результате в компонент будет добавлен и открыт для редактирования файл с кодом, содержащий несколько закомментированных обработчиков событий.
Добавьте следующие объявления переменных в класс приемника событий.
Замените процедуру
FeatureActivated
следующим кодом.public override void FeatureActivated(SPFeatureReceiverProperties properties) { try { using (SPSite site = new SPSite(siteUrl)) { using (SPWeb web = site.OpenWeb(webUrl)) { // Reference the lists. SPList announcementsList = web.Lists["Announcements"]; // Add a new announcement to the Announcements list. SPListItem listItem = announcementsList.Items.Add(); listItem["Title"] = "Activated Feature: " + properties.Definition.DisplayName; listItem["Body"] = properties.Definition.DisplayName + " was activated on: " + DateTime.Now.ToString(); // Waste some time. TimeCounter(); // Update the list. listItem.Update(); } } } catch (Exception e) { Console.WriteLine("Error: " + e.ToString()); } }
Добавьте следующую процедуру ниже
FeatureActivated
процедуры.В Обозреватель решений откройте контекстное меню проекта (ProfileTest), а затем выберите "Свойства".
В диалоговом окне "Свойства" выберите вкладку SharePoint.
В списке конфигурации активного развертывания выберите "Нет активации".
Выбор этой конфигурации развертывания позволяет в дальнейшем вручную активировать компонент в SharePoint.
Сохраните проект.
Настройка и развертывание приложения SharePoint
Теперь, когда проект SharePoint готов, настройте и разверните его на сервере SharePoint.
Методика настройки и развертывания приложения SharePoint
В меню "Анализ" выберите мастер запуска производительности.
На странице одного из мастера производительности оставьте метод профилирования в качестве выборки ЦП и нажмите кнопку "Далее ".
В более сложных случаях профилирования можно использовать другие методы профилирования. Дополнительные сведения см. в статье Общие сведения о методах сбора данных по производительности.
На двух страницах мастера производительности оставьте целевой объект профиля в качестве ProfileTest и нажмите кнопку "Далее ".
Если решение содержит несколько проектов, они появятся в этом списке.
На странице 3 мастера производительности снимите флажок "Включить профилирование взаимодействия с уровнем" и нажмите кнопку "Далее ".
Функция профилирования уровневого взаимодействия (TIP) полезна для измерения производительности приложений, которые обращаются к базам данных, и для отображения количества запросов какой-либо веб-страницы. Поскольку эти данные не требуются в данном примере, эта возможность не будет использоваться.
На странице четыре мастера производительности оставьте профилирование запуска после того, как мастер завершит флажок, а затем нажмите кнопку "Готово".
Мастер включает профилирование приложений на сервере, отображает окно обозревателя производительности, а затем создает, развертывает и запускает приложение SharePoint.
Запуск приложения SharePoint
Активируйте компонент SharePoint, запустив код события FeatureActivation
.
Запуск приложения SharePoint
В SharePoint откройте меню "Действия сайта" и выберите "Параметры сайта".
В списке действий сайта выберите ссылку "Управление функциями сайта".
В списке компонентов нажмите кнопку "Активировать" рядом с параметром ProfileTest Feature1.
При этом возникнет пауза из-за вызова цикла простоя в функции
FeatureActivated
.На панели быстрого запуска выберите "Списки", а затем в списке "Списки" выберите "Объявления".
Обратите внимание, что новое извещение о том, что компонент был активирован, добавляется в список.
Закройте сайт SharePoint.
После закрытия SharePoint профилировщик создает и отображает пример отчета профилирования и сохраняет его в виде VSP-файла в папке проекта ProfileTest .
Просмотр и интерпретация результатов профиля
Теперь, после запуска и профилирования приложения SharePoint, просмотрите результаты теста.
Просмотр и интерпретация результатов профиля
В разделе "Функции, выполняющие большую отдельную работу" отчета о профилировании, обратите внимание, что
TimeCounter
находится в верхней части списка.Это положение означает, что
TimeCounter
является одной из функций с наибольшим количеством выборок, а значит она — одно из самых узких мест производительности приложения. Это не удивительно, поскольку она была специально так разработана в демонстрационных целях.В разделе "Функции" "Выполнение большинства отдельных работ" выберите
ProcessRequest
ссылку, чтобы отобразить распределение затрат дляProcessRequest
функции.В разделе "Вызываемые функции"
ProcessRequest
обратите внимание, что функция FeatureActiviated указана в качестве самой дорогой вызываемой функции.В разделе "Вызываемые функции" нажмите кнопку FeatureActivated.
В разделе "Вызываемые функции" для FeatureActivated
TimeCounter
функция указана в качестве самой дорогой вызываемой функции. В области представления кода функции выделенный код (TimeCounter
) является хот-точкой и указывает, где требуется исправление.Закройте отчет о профилировании выборки.
Чтобы просмотреть отчет снова в любое время, откройте VSP-файл в окне обозревателя производительности.
Исправление кода и повторное создание приложения
Теперь, когда наиболее часто используемая функция в приложении SharePoint определена, исправьте ее.
Исправление кода и перепрофилирование приложения
В коде приемника событий компонента закомментируйте вызов метода
TimeCounter
вFeatureActivated
, чтобы предотвратить его вызов.Сохраните проект.
В обозревателе производительности откройте папку Targets и выберите узел ProfileTest .
На панели инструментов обозревателя производительности на вкладке "Действия" нажмите кнопку "Пуск профилирования".
Если вы хотите изменить любой из свойств профилирования перед перепрофилированием приложения, нажмите кнопку мастера запуска производительности.
Следуйте инструкциям в разделе "Запуск приложения SharePoint" ранее в этом разделе.
Теперь, когда вызов цикла простоя устранен, компонент должен активироваться гораздо быстрее. Отчет о профилировании выборки должен отражать это.