Freigeben über


Exemplarische Vorgehensweise: Profilerstellung für eine SharePoint-Anwendung

In dieser exemplarischen Vorgehensweise wird erläutert, wie die Profilerstellungstools in Visual Studio verwendet, um die Leistung einer SharePoint-Anwendung zu optimieren.Die Beispielanwendung ist ein SharePoint-Funktionsereignisempfänger, der eine Leerlaufschleife enthält, die die Leistung des Funktionsereignisempfängers beeinträchtigt.Der Visual Studio-Profiler ermöglicht es Ihnen, den teuersten (langsam-ausführenden) Teil des Projekts, auch als des langsamsten Pfads zu suchen und zu vermeiden.

Diese exemplarische Vorgehensweise enthält die folgenden Aufgaben:

  • Hinzufügen einer Funktion und eines Funktionsereignisempfängers.

  • Die SharePoint-Anwendung konfigurieren und Bereitstellen.

  • Ausführen der SharePoint-Anwendung.

  • Die Profilerstellungs-Ergebnisse anzeigen und Interpretieren.

HinweisHinweis

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

Erstellen eines SharePoint-Projekts

Zunächst erstellen Sie ein SharePoint-Projekt.

So erstellen Sie ein SharePoint-Projekt

  1. Wählen Sie auf der Menüleiste Sie Datei, Neu, ProjektNeues Projekt, um das Dialogfeld anzuzeigen.

  2. Erweitern Sie den Knoten SharePoint entweder mit Visual C# oder Visual Basic, und wählen Sie dann den Knoten 2010 aus.

  3. Wählen Sie im Vorlagenbereich die SharePoint 2010-Projekt Vorlage aus.

  4. Im Feld geben Sie Name ProfileTest ein und klicken Sie dann auf die Schaltfläche OK aus.

    Der Assistent zum Anpassen von SharePoint wird angezeigt.

  5. Geben Sie auf der Seite Site und Sicherheitsebene für Debugging angeben die URL für die SharePoint-Webserversite ein, an der Sie die Websitedefinition debuggen möchten, oder verwenden Sie den Standardspeicherort (http://Systemname/).

  6. Im Wie lautet die Vertrauensebene für diese SharePoint-Lösung?-Abschnitt aktivieren Sie das Optionsfeld Als Farmlösung bereitstellen.

    Derzeit können Sie Farmlösungen nur ein Profil erstellen.Weitere Informationen über Sandkastenlösungen im Vergleich zu Farmlösungen finden Sie in Überlegungen zu Sandkastenlösungen.

  7. Wählen Sie die Schaltfläche Fertig stellen aus.Das Projekt wird im Projektmappen-Explorer angezeigt.

Hinzufügen einer Funktion und eines Funktionsereignisempfängers

Als Nächstes fügen Sie dem Projekt eine Funktion zusammen mit einem Ereignisempfänger für die Funktion hinzu.Dieser Ereignisempfänger enthält den ein Profil erstellt werden, Code.

So fügen Sie eine Funktion und einen Funktionsereignisempfänger hinzufügen

  1. In Projektmappen-Explorer öffnen Sie das Kontextmenü für den Knoten Funktionen, wählen Sie Funktion hinzufügen aus und legen Sie den Namen im Standardwert, Feature1.

  2. In Projektmappen-Explorer öffnen Sie das Kontextmenü für Feature1, und wählen Sie dann Ereignisempfänger hinzufügen aus.

    Dadurch wird eine Codedatei der Funktion mit einigen Ereignishandlern auskommentierten hinzu und öffnet die Datei zum Bearbeiten.

  3. Im Fall fügen Empfängerklasse, die folgenden Variablendeklarationen hinzu.

    ' 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. Ersetzen Sie die FeatureActivated-Prozedur durch folgenden Code.

    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. Fügen Sie die folgende Prozedur unter der FeatureActivated Prozedur hinzu.

    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. In Projektmappen-Explorer öffnen Sie das Kontextmenü für das Projekt (ProfileTest), und wählen Sie dann Eigenschaften aus.

  7. Im Dialogfeld EigenschaftenSharePoint wählen Sie die Registerkarte aus.

  8. In der Liste wählen Sie Aktive BereitstellungskonfigurationKeine Aktivierung aus.

    Durch Auswahl dieser Bereitstellungskonfiguration ermöglicht es Ihnen, die Funktion in SharePoint manuell später zu aktivieren.

  9. Speichern Sie das Projekt.

Die SharePoint-Anwendung konfigurieren und Bereitstellen

Da das SharePoint-Projekt bereit ist, konfigurieren Sie es und stellen Sie es auf dem SharePoint-Server bereit.

Um die SharePoint-Anwendung konfigurieren und bereitstellen

  1. Klicken Sie im Menü Analysieren wählen Sie Leistungs-Assistenten starten aus.

  2. Auf Seite eine Leistungs-Assistent, legen Sie die - Methode der Profilerstellung als CPU-Sampling und wählen Sie die Schaltfläche Weiter aus.

    Die anderen Profilerstellungsmethoden können in fortgeschritteneren Profilerstellungssituationen verwendet werden.Weitere Informationen finden Sie unter Grundlagen zu Profilerstellungsmethoden.

  3. Auf Seite zwei Leistungs-Assistent, lassen Sie das Profil, als ProfileTest zuschneiden die Schaltfläche Weiter auszuwählen.

    Wenn eine Projektmappe mehrere Projekte enthält, werden diese in dieser Liste.

  4. Auf Seite drei Leistungs-Assistent, deaktivieren Sie das Kontrollkästchen Profilerstellung für Ebeneninteraktion aktivieren, und wählen Sie dann die Schaltfläche Weiter aus.

    Die Funktion der Ebeneninteraktion (TIPP-Daten) ist zum Messen der Leistung der Anwendungen nützlich, die Datenbanken abfragen und zum Anzeigen Ihnen der Häufigkeit wird eine Webseite angefordert.Da diese Daten für dieses Beispiel nicht erforderlich sind, können Sie diese Funktion nicht.

  5. Auf Seite vier Leistungs-Assistent, lassen Sie das Kontrollkästchen Profilerstellung nach Abschluss des Assistenten starten aus, und wählen Sie dann die Schaltfläche Fertig stellen aus.

    Der Assistent aktiviert Anwendungsprofilerstellung auf dem Server, zeigt das Fenster an Leistungs-Explorer und dann stützt sich auf, Bereitstellen und führt die SharePoint-Anwendung aus.

Ausführen der SharePoint-Anwendung

Aktivieren Sie die Funktion in SharePoint und den FeatureActivation-Ereigniscode starten, um ausgeführt zu werden.

Um die SharePoint-Anwendung ausführen

  1. In SharePoint Websiteaktionen öffnen Sie das Menü, und wählen Sie dann Standorteinstellungen aus.

  2. In der Liste Websiteaktionen den Websitefeatures verwalten Link aus.

  3. In der Liste Funktionen die Schaltfläche Aktivieren neben ProfileTest Feature1 aus.

    Es gibt eine Anhalten, wenn Sie dies tun, aufgrund der Leerlaufschleife, die in der FeatureActivated-Funktion aufgerufen wird.

  4. Klicken Sie auf der Schnellstart Leiste wählen Sie Listen und dann in der Liste auswählen, ListenAnkündigungen aus.

    Beachten Sie, dass eine neue Ankündigung angibt zur Liste hinzugefügt wurde, dass die Funktion aktiviert wurde.

  5. Schließen Sie die SharePoint-Website.

    Nachdem Sie SharePoint schließen, erstellt der Profiler und zeigt einen Beispielprofilerstellungs-Bericht an und speichert ihn als .vsp-Datei im Ordner des Projekts ProfileTest.

Die Profilerstellungs-Ergebnisse anzeigen und Interpretieren

Nachdem Sie die SharePoint-Anwendung ausgeführt und ein Profil erstellt haben, zeigen Sie die Testergebnisse an.

Um die Profilerstellung anzeigen und interpretieren

  1. Im Funktionen, die die meisten Einzelaufgaben durchführen-Abschnitt des Beispielprofilerstellungs-Berichts, Sie, dass TimeCounter " am Anfang der Liste befindet.

    Dieser Speicherort gibt an, dass TimeCounter eine der Funktionen mit der höchsten Anzahl von Samplings war und bedeutete, dass sie eine der größten Leistungsengpässe in der Anwendung ist.Diese Situation ist jedoch nicht überraschend da absichtlich so konzipiert ist, dass Methode zu Demonstrationszwecken vorgesehen.

  2. Im Abschnitt Funktionen, die die meisten Einzelaufgaben durchführen wählen Sie den ProcessRequest Link, um die Kostenaufteilung für die ProcessRequest-Funktion anzuzeigen.

    Im Aufgerufene Funktionen-Abschnitt für ProcessRequest, Sie, dass die Funktion FeatureActiviated als die aufwändigste aufgerufene Funktion aufgeführt ist.

  3. Im Abschnitt Aufgerufene Funktionen wählen Sie die Schaltfläche FeatureActivated aus.

    Im Aufgerufene Funktionen-Abschnitt für FeatureActivated, wird die TimeCounter-Funktion als die aufwändigste aufgerufene Funktion aufgeführt.Im Bereich Funktionscodeansicht ist der gekennzeichnete Code (TimeCounter) der Hotspot und gibt an, wo die Korrektur benötigt wird.

  4. Schließen Sie den Beispielprofilerstellungs-Bericht.

    Um den Bericht erneut anzuzeigen, öffnen Sie jederzeit die .vsp-Datei im Fenster Leistungs-Explorer.

Wenn Sie den Code und das Reprofiling korrigieren die Anwendung

Nachdem Hotspotfunktion in der SharePoint-Anwendung identifiziert wurde, führen Sie diese.

Um den Code korrigieren und die Anwendung reprofile

  1. Im Funktionsereignisempfängercode Auskommentieren der TimeCounter-Methodenaufruf in FeatureActivated, um ihn für aufgerufen werden.

  2. Speichern Sie das Projekt.

  3. In Leistungs-Explorer öffnen Sie den Zielordner, und wählen Sie dann den Knoten ProfileTest aus.

  4. Leistungs-Explorer auf der Symbolleiste der Registerkarte Aktionen, wählen Sie die Schaltfläche Profilerstellung starten aus.

    Wenn Sie eines der Profilerstellungseigenschaften vor dem Reprofiling die Anwendung ändern möchten, wählen Sie die Schaltfläche Leistungs-Assistenten starten stattdessen.

  5. Befolgen Sie die Anweisungen im Abschnitt Ausführen der SharePoint-Anwendung, zuvor in diesem Thema.

    Die Funktion sollte viel schneller aktivieren, nun seit dem Aufruf der Leerlaufschleife entfernt wurde.Der Beispielprofilerstellungs-Bericht sollte dieses entsprechen.

Siehe auch

Konzepte

Analysieren der Anwendungsleistung mithilfe der Profilerstellungstools

Übersicht über Leistungssitzungen der Profilerstellungstools

Einführung in die Leistungsprofilerstellung

Weitere Ressourcen

Suchen-Anwendungs-Engpässe mit Visual Studio-Profiler