Пошаговое руководство. Профилирование приложения SharePoint
В этом пошаговом руководстве показано, как использовать средства профилирования в Visual Studio, чтобы оптимизировать производительность приложений SharePoint.Пример приложения приемник событий компонента SharePoint, который содержит цикл бездействия, снижает производительность приемника событий компонента.Профилировщик Visual Studio позволяет обнаружить и устранить наиболее дорогая (медленн- при выполнении) является частью проекта, также называемая активный путь.
В этом пошаговом руководстве показано выполнение следующих задач.
Добавление функции и приемник событий компонента.
Настройка и развертывание приложения SharePoint.
Запуск приложения SharePoint.
Просмотр и интерпретация результатов профилирования.
![]() |
---|
На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Обязательные компоненты
Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.
Поддерживаемые выпуски Microsoft Windows и SharePoint.Дополнительные сведения см. в разделе Требования по разработке решений SharePoint.
Visual Studio 2012.
Создание проекта SharePoint
Сначала создайте проект SharePoint.
Создание проекта SharePoint
В строке меню выберите Файл, Создать, Проект для отображения диалогового окна Создать проект.
Разверните узел SharePoint под или Visual C# или Visual Basic, а затем выберите узел 2010.
В области шаблоны выберите шаблон Проект SharePoint 2010.
В окне Имя, вставки ProfileTest, а затем кнопку ОК.
Появится окно Мастер настройки SharePoint.
На странице Укажите сайт и уровень безопасности для отладки введите URL-адрес сайта сервера SharePoint, на котором будет выполняться отладка определения сайта, или примите значение по умолчанию (http://имя_системы/).
В разделе Какова степень доверия для этого решения SharePoint? выберите переключатель Развернуть как решение фермы.
В настоящее время можно только профилирование решениями фермы.Дополнительные сведения о сравнительных особенностях обезвреженных решений и решений фермы см. в разделе Замечания об обезвреженных решениях.
Нажмите кнопку Готово.Проект откроется в обозревателе решений.
Добавление функции и приемник событий компонента
Далее добавьте функцию к проекту вместе с приемником событий для функции.Этот приемник событий будет содержать код для профилирования.
Добавление функции и приемник событий компонента
В Обозреватель решений открыть контекстное меню для узла Компоненты выберите Добавить компонент и оставьте имя на значение по умолчанию Feature1.
В Обозреватель решений открыть контекстное меню для Feature1, а затем выберите Добавить приемник событий.
Это добавит файл кода функции с несколькими закомментированных обработчиков событий и открывает файл для редактирования.
В случае класс приемника, добавьте следующие объявления переменных.
' SharePoint site/subsite. Private siteUrl As String = "https://localhost" Private webUrl As String = "/"
// SharePoint site/subsite. private string siteUrl = "https://localhost"; private string webUrl = "/";
Замените процедуру FeatureActivated следующим кодом.
Public Overrides Sub FeatureActivated(properties As SPFeatureReceiverProperties) Try Using site As New SPSite(siteUrl) Using web As SPWeb = site.OpenWeb(webUrl) ' Reference the lists. Dim announcementsList As SPList = web.Lists("Announcements") ' Add a new announcement to the Announcements list. Dim listItem As SPListItem = announcementsList.Items.Add() listItem("Title") = "Activated Feature: " & Convert.ToString(properties.Definition.DisplayName) listItem("Body") = Convert.ToString(properties.Definition.DisplayName) & " was activated on: " & DateTime.Now.ToString() ' Waste some time. TimeCounter() ' Update the list. listItem.Update() End Using End Using Catch e As Exception Console.WriteLine("Error: " & e.ToString()) End Try End Sub
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 процедурой.
Public Sub TimeCounter() Dim result As Integer For i As Integer = 0 To 99999 For j As Integer = 0 To 9999 result = i * j Next j Next i End Sub
public void TimeCounter() { for (int i = 0; i < 100000; i++) { for (int j = 0; j < 10000; j++) { int result = i * j; } } }
В Обозреватель решений открыть контекстное меню для проекта (ProfileTest), а затем выберите Свойства.
В диалоговом окне Свойства выберите вкладку SharePoint.
В списке Активная конфигурация развертывания выберите Без активации.
Выбрать такая конфигурация развертывания используется, чтобы вручную активировать функцию далее в SharePoint.
Сохраните проект.
Настройка и развертывание приложения SharePoint
Теперь, когда проект SharePoint будет готов, настройте его и развертывание на сервер SharePoint.
Настройка и развертывание приложения SharePoint
В меню Анализировать выберите Запустить мастер производительности.
На первой странице Мастер производительности оставьте метод профилирования в качестве Выборка циклов ЦП и нажмите кнопку Далее.
Другие методы профилирования могут быть использованы в более сложных ситуациях профилирования.Дополнительные сведения см. в разделе Общее представление о способах профилирования.
На странице 2 Мастер производительности оставьте целевой объект профиля в качестве ProfileTest и нажмите кнопку Далее.
Если решение имеет несколько проектов, они отображаются в данном списке.
На странице 3 Мастер производительности, снимите флажок Включить профилирование уровневого взаимодействия, а затем нажмите кнопку Далее.
Функции профилирования уровневом взаимодействии (TIP) очень полезна для измерения производительности приложений, выполняющих запрос к базе данных и отображения веб-страницы, количество раз.Так как эти данные не требуется в данном примере мы не будут включать эту функцию.
На странице 4 Мастер производительности оставьте флажок Профилирование после запуска мастера отделок выбранный, а затем нажмите кнопку Готово.
Мастер включает профилирование приложения на сервере, показывает окно Обозреватель производительности, и затем построения, развертывания и запускает приложение 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 в окне Обозреватель производительности.
Фиксирующ код и Reprofiling приложение
Теперь, когда была определена функция гиперобъекта в приложении SharePoint, исправьте ее.
Исправить код и reprofile приложение
В коде приемника событий компонента, закомментируйте вызов метода TimeCounter в FeatureActivated чтобы предотвратить его от непосредственного вызова.
Сохраните проект.
В Обозреватель производительности, откройте папку целевых объектов, а затем выберите узел ProfileTest.
На панели инструментов Обозреватель производительности на вкладке Действия, нажмите кнопку Запустить профилирование.
Если требуется изменить какие-либо свойства профилирования до reprofiling приложение, нажмите кнопку Запустить мастер производительности.
Следуйте инструкциям в разделе Запуск приложения SharePoint ранее в этом разделе.
Функция должна активировать гораздо быстрее теперь, когда был исключен вызов неработающему циклу.Отчет профилирования с выборкой должен отражать данное.
См. также
Основные понятия
Анализ производительности приложения с помощью средств профилирования
Общие сведения о сеансе производительности средств профилирования
Руководство по профилированию производительности для начинающих
Другие ресурсы
Найти узкие места приложения с профилировщиком Visual Studio