Поделиться через


Пошаговое руководство. Профилирование приложения SharePoint

В этом пошаговом руководстве показано, как использовать средства профилирования в Visual Studio, чтобы оптимизировать производительность приложений SharePoint.Пример приложения приемник событий компонента SharePoint, который содержит цикл бездействия, снижает производительность приемника событий компонента.Профилировщик Visual Studio позволяет обнаружить и устранить наиболее дорогая (медленн- при выполнении) является частью проекта, также называемая активный путь.

В этом пошаговом руководстве показано выполнение следующих задач.

  • Добавление функции и приемник событий компонента.

  • Настройка и развертывание приложения SharePoint.

  • Запуск приложения SharePoint.

  • Просмотр и интерпретация результатов профилирования.

ПримечаниеПримечание

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Обязательные компоненты

Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.

Создание проекта SharePoint

Сначала создайте проект SharePoint.

Создание проекта SharePoint

  1. В строке меню выберите Файл, Создать, Проект для отображения диалогового окна Создать проект.

  2. Разверните узел SharePoint под или Visual C# или Visual Basic, а затем выберите узел 2010.

  3. В области шаблоны выберите шаблон Проект SharePoint 2010.

  4. В окне Имя, вставки ProfileTest, а затем кнопку ОК.

    Появится окно Мастер настройки SharePoint.

  5. На странице Укажите сайт и уровень безопасности для отладки введите URL-адрес сайта сервера SharePoint, на котором будет выполняться отладка определения сайта, или примите значение по умолчанию (http://имя_системы/).

  6. В разделе Какова степень доверия для этого решения SharePoint? выберите переключатель Развернуть как решение фермы.

    В настоящее время можно только профилирование решениями фермы.Дополнительные сведения о сравнительных особенностях обезвреженных решений и решений фермы см. в разделе Замечания об обезвреженных решениях.

  7. Нажмите кнопку Готово.Проект откроется в обозревателе решений.

Добавление функции и приемник событий компонента

Далее добавьте функцию к проекту вместе с приемником событий для функции.Этот приемник событий будет содержать код для профилирования.

Добавление функции и приемник событий компонента

  1. В Обозреватель решений открыть контекстное меню для узла Компоненты выберите Добавить компонент и оставьте имя на значение по умолчанию Feature1.

  2. В Обозреватель решений открыть контекстное меню для Feature1, а затем выберите Добавить приемник событий.

    Это добавит файл кода функции с несколькими закомментированных обработчиков событий и открывает файл для редактирования.

  3. В случае класс приемника, добавьте следующие объявления переменных.

    ' SharePoint site/subsite.
    Private siteUrl As String = "https://localhost"
    Private webUrl As String = "/"
    
    // SharePoint site/subsite.
    private string siteUrl = "https://localhost";
    private string webUrl = "/";
    
  4. Замените процедуру 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());
        }
    }
    
  5. Добавьте следующую процедуру в 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;
            }
        }
    }
    
  6. В Обозреватель решений открыть контекстное меню для проекта (ProfileTest), а затем выберите Свойства.

  7. В диалоговом окне Свойства выберите вкладку SharePoint.

  8. В списке Активная конфигурация развертывания выберите Без активации.

    Выбрать такая конфигурация развертывания используется, чтобы вручную активировать функцию далее в SharePoint.

  9. Сохраните проект.

Настройка и развертывание приложения SharePoint

Теперь, когда проект SharePoint будет готов, настройте его и развертывание на сервер SharePoint.

Настройка и развертывание приложения SharePoint

  1. В меню Анализировать выберите Запустить мастер производительности.

  2. На первой странице Мастер производительности оставьте метод профилирования в качестве Выборка циклов ЦП и нажмите кнопку Далее.

    Другие методы профилирования могут быть использованы в более сложных ситуациях профилирования.Дополнительные сведения см. в разделе Общее представление о способах профилирования.

  3. На странице 2 Мастер производительности оставьте целевой объект профиля в качестве ProfileTest и нажмите кнопку Далее.

    Если решение имеет несколько проектов, они отображаются в данном списке.

  4. На странице 3 Мастер производительности, снимите флажок Включить профилирование уровневого взаимодействия, а затем нажмите кнопку Далее.

    Функции профилирования уровневом взаимодействии (TIP) очень полезна для измерения производительности приложений, выполняющих запрос к базе данных и отображения веб-страницы, количество раз.Так как эти данные не требуется в данном примере мы не будут включать эту функцию.

  5. На странице 4 Мастер производительности оставьте флажок Профилирование после запуска мастера отделок выбранный, а затем нажмите кнопку Готово.

    Мастер включает профилирование приложения на сервере, показывает окно Обозреватель производительности, и затем построения, развертывания и запускает приложение SharePoint.

Запуск приложения SharePoint

Активировать функцию в SharePoint, активируя код события FeatureActivation для выполнения.

Запуск приложения SharePoint

  1. В SharePoint, откройте меню действия сайта, а затем выберите Параметры сайта.

  2. В списке Поместите действия выберите ссылку Управление функциями сайта.

  3. В списке Компоненты, нажмите кнопку Активировать рядом с ProfileTest Feature1.

    Приостановить при этом, вследствие неработающему циклу вызываемого в функции FeatureActivated.

  4. На панели Быстрый запуск выберите Списки, а затем в списке Списки выберите Извещения.

    Обратите внимание, что новое уведомление было добавлено к списку о том, что функция была активируется.

  5. Закройте сайт SharePoint.

    После того как закрыть SharePoint, профилировщик создает и отображает отчет профилирования с выборкой и сохраняет его в виде файла .vsp в папке проекта ProfileTest.

Просмотр и интерпретация результатов профилирования

Теперь при запуске и профилировали приложение SharePoint, просмотрите результаты теста.

Для просмотра и интерпретации результатов профилирования

  1. В разделе Функции с максимальной индивидуальной работой отчет профилирования с выборкой обратите внимание, что TimeCounter в верхней части списка.

    Это местоположение указывает, что было TimeCounter одной из функций с наибольшее количество выборок, означать один из самых больших его узких мест производительности в приложении.Эта ситуация не удивительно, однако поскольку нарочно было разработано, что способ для демонстрации намеревается.

  2. В разделе Функции с максимальной индивидуальной работой выберите ссылку ProcessRequest для отображения распределения значений для функции ProcessRequest.

    В разделе Вызываемые функции для ProcessRequest обратите внимание, что функция FeatureActiviated перечислитьа как наиболее дорогая вызываемая функция.

  3. В разделе Вызываемые функции, нажмите кнопку FeatureActivated.

    В разделе Вызываемые функции для FeatureActivated, функция TimeCounter перечислитьа как наиболее дорогая вызываемая функция.На панели Представление кода функции, выделенный код (TimeCounter) территория беспроводного доступа и показывает, где коррекция не требуется.

  4. Закрыть отчет профилирования с выборкой.

    Для просмотра отчета в любое время, откройте файл с расширением .vsp в окне Обозреватель производительности.

Фиксирующ код и Reprofiling приложение

Теперь, когда была определена функция гиперобъекта в приложении SharePoint, исправьте ее.

Исправить код и reprofile приложение

  1. В коде приемника событий компонента, закомментируйте вызов метода TimeCounter в FeatureActivated чтобы предотвратить его от непосредственного вызова.

  2. Сохраните проект.

  3. В Обозреватель производительности, откройте папку целевых объектов, а затем выберите узел ProfileTest.

  4. На панели инструментов Обозреватель производительности на вкладке Действия, нажмите кнопку Запустить профилирование.

    Если требуется изменить какие-либо свойства профилирования до reprofiling приложение, нажмите кнопку Запустить мастер производительности.

  5. Следуйте инструкциям в разделе Запуск приложения SharePoint ранее в этом разделе.

    Функция должна активировать гораздо быстрее теперь, когда был исключен вызов неработающему циклу.Отчет профилирования с выборкой должен отражать данное.

См. также

Основные понятия

Анализ производительности приложения с помощью средств профилирования

Общие сведения о сеансе производительности средств профилирования

Руководство по профилированию производительности для начинающих

Другие ресурсы

Найти узкие места приложения с профилировщиком Visual Studio