Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser exemplarischen Vorgehensweise wird die Verwendung von Profilerstellungstools in Visual Studio gezeigt, um die Leistung einer SharePoint-Anwendung zu optimieren. Bei der Beispielanwendung handelt es sich um einen SharePoint-Funktionsereignisempfänger, der eine Leerlaufschleife enthält, welche die Leistung des Funktionsereignisempfängers reduziert. Mit dem Visual Studio-Profiler können Sie den teuersten (langsamsten) Bestandteil des Projekts, der auch als langsamster Pfad (hot path) bezeichnet wird, auffinden und beseitigen.
Diese exemplarische Vorgehensweise enthält die folgenden Aufgaben:
Hinzufügen einer Funktion und eines Funktionsereignisempfängers.
Anzeigen und Interpretieren der Profilerstellungsergebnisse.
Hinweis
Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren der IDE.
Voraussetzungen
Zum Abschließen dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:
Unterstützte Editionen von Microsoft Windows und SharePoint.
Visual Studio 2012.
Erstellen eines SharePoint-Projekts
Erstellen Sie zunächst eine SharePoint-Projekt.
So erstellen Sie ein SharePoint-Projekt
Wählen Sie in der Menüleiste Datei>Neu>Projekt aus, um das Dialogfeld Neues Projekt anzuzeigen.
Erweitern Sie unter Visual C# oder Visual Basic den Knoten SharePoint, und wählen Sie dann den Knoten 2010 aus.
Wählen Sie im Vorlagenbereich die Vorlage SharePoint 2010-Projekt aus.
Geben Sie in das Feld NameProfileTest ein, und wählen Sie dann die Schaltfläche OK aus.
Der Assistent zum Anpassen von SharePoint wird angezeigt.
Geben Sie auf der Seite Website und Sicherheitsebene für Debugging angeben die URL für die SharePoint-Serversite ein, auf der Sie die Sitedefinition debuggen möchten, oder verwenden Sie den Standardspeicherort (http://Systemname/).
Wählen Sie im Abschnitt Wie lautet die Vertrauensebene für diese SharePoint-Lösung? die Optionsschaltfläche Als Farmlösung bereitstellen aus.
Zurzeit können Sie Farmlösungsprofile erstellen. Weitere Informationen über Sandkastenlösungen im Vergleich zu Farmlösungen finden Sie unter Überlegungen zu Sandkastenlösungen.
Klicken Sie auf die Schaltfläche Fertig stellen. Das Projekt wird im Projektmappen-Explorer angezeigt.
Hinzufügen einer Funktion und eines Funktionsereignisempfängers
Fügen Sie dem Projekt als Nächstes eine Funktion zusammen mit dem Ereignisempfänger für die Funktion hinzu. Dieser Ereignisempfänger enthält den Code, für den das Profil erstellt wird.
So fügen Sie ein Feature und den Funktionsereignisempfänger hinzu
Öffnen Sie im Projektmappen-Explorer das Kontextmenü für den Knoten Funktionen aus. Wählen Sie die Funktion hinzufügen aus, und belassen Sie den Namen des Standardwerts Feature1 unverändert.
Öffnen Sie im Projektmappen-Explorer das Kontextmenü für Feature1, und wählen Sie anschließend Ereignisempfänger hinzufügen aus.
Dadurch wird dem Feature eine Codedatei mit verschiedenen auskommentierten Ereignishandlern hinzugefügt, und die Datei wird für die Bearbeitung geöffnet.
Fügen Sie in der Ereignisempfängerklasse die folgenden Variablendeklarationen hinzu.
Ersetzen Sie die
FeatureActivated
-Prozedur durch den folgenden Code.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()); } }
Fügen Sie die folgende Prozedur unter der
FeatureActivated
-Prozedur hinzu.Öffnen Sie im Projektmappen-Explorer das Kontextmenü für das Projekt (ProfileTest), und wählen Sie dann Eigenschaften aus.
Wählen Sie im Dialogfeld Eigenschaften die Registerkarte SharePoint aus.
Wählen Sie in der Liste Aktive Bereitstellungskonfiguration die Option Keine Aktivierung aus.
Durch die Auswahl dieser Bereitstellungskonfiguration können Sie später die Funktion in SharePoint manuell aktivieren.
Speichern Sie das Projekt.
Konfigurieren und Bereitstellen der SharePoint-Anwendung
Da das SharePoint-Projekt nun bereit ist, können Sie es konfigurieren und für den SharePoint-Server bereitstellen.
So konfigurieren und stellen Sie die SharePoint-Anwendung bereit
Wählen Sie im Menü Analysieren die Option Leistungs-Assistenten starten aus.
Belassen Sie auf der ersten Seite des Leistungs-Assistenten die Methode der Profilerstellung auf CPU-Sampling, und wählen Sie die Schaltfläche Weiter aus.
Die anderen Profilerstellungsmethoden können in komplexeren Profilerstellungssituationen verwendet werden. Weitere Informationen finden Sie unter Grundlagen zu Profilerstellungsmethoden.
Belassen Sie auf der zweiten Seite des Leistungs-Assistenten das Profilziel auf ProfileTest, und wählen Sie die Schaltfläche Weiter aus.
Wenn eine Projektmappe über mehrere Projekte verfügt, werden sie in dieser Liste angezeigt.
Deaktivieren Sie auf der dritten Seite des Leistungs-Assistenten das Kontrollkästchen Profilerstellung für Ebeneninteraktion aktivieren, und wählen Sie dann die Schaltfläche Weiter aus.
Das Feature Profilerstellung für Ebeneninteraktion (Tier Interaction Profiling, TIP) ist für das Messen der Leistung von Anwendungen, die Datenbanken abfragen, sowie für das Anzeigen der Anzahl der Häufigkeit, wie oft eine Webseite angefordert wird, hilfreich. Da diese Daten für dieses Beispiel nicht erforderlich sind, aktivieren wir dieses Feature nicht.
Lassen Sie auf der vierten Seite des Leistungs-Assistenten das Kontrollkästchen Profilerstellung nach Abschluss des Assistenten starten aktiviert, und wählen Sie dann die Schaltfläche Fertig stellen aus.
Der Assistent ermöglicht die Anwendungsprofilerstellung auf dem Server, zeigt das Fenster Leistungs-Explorer an, erstellt die SharePoint-Anwendung, stellt sie bereit und führt sie aus.
Ausführen der SharePoint-Anwendung
Aktivieren Sie das Feature in SharePoint, wodurch die Auslösung des FeatureActivation
-Ereigniscodes ausgelöst wird.
So führen Sie die SharePoint-Anwendung aus
Öffnen Sie in SharePoint das Menü Websiteaktionen, und wählen Sie dann Websiteeinstellungen aus.
Wählen Sie in der Liste Websiteaktionen den Link Websitefunktionen verwalten aus.
Wählen Sie in der Liste Funktion neben ProfileTest Feature1 die Schaltfläche Aktivieren aus.
Aufgrund der in der
FeatureActivated
-Funktion aufgerufenen Leerlaufschleife tritt eine Pause auf, wenn Sie dies vornehmen.Wählen Sie in der Schnellstartleiste den Eintrag Listen aus, und wählen Sie anschließend in der Liste Listen den Eintrag Ankündigungen aus.
Beachten Sie, dass der Liste eine neue Ankündigung hinzugefügt wurde, aus der hervorgeht, dass die Funktion aktiviert wurde.
Schließen Sie die SharePoint-Website.
Nach dem Schließen von SharePoint wird mit der Profilerstellung ein Beispiel-Profilerstellungsbericht erstellt und angezeigt. Dieser wird in einer VSP-Datei im Ordner ProfileTest des Projekts gespeichert.
Anzeigen und Interpretieren der Profilerstellungsergebnisse
Zeigen Sie nun nach der Ausführung und Profilerstellung der SharePoint-Anwendung die Testergebnisse an.
So zeigen Sie die Profilerstellungsergebnisse an und interpretieren sie
Beachten Sie im Abschnitt Funktionen mit den meisten einzelnen Aufgaben des Beispiel-Profilerstellungsberichts, dass sich
TimeCounter
nahezu ganz oben in der Liste befindet.Diese Position deutet darauf hin, dass es sich bei
TimeCounter
um eine der Funktionen mit der höchsten Anzahl an Beispielen gehandelt hat. Hierbei handelt es sich also um einen der größten Leistungsengpässe in der Anwendung. Diese Situation ist nicht überraschend, da dies für Demonstrationszwecke extra so entworfen wurde.Wählen Sie im Abschnitt Funktionen mit den meisten einzelnen Aufgaben den Link
ProcessRequest
aus, um die Kostenverteilung für die FunktionProcessRequest
anzuzeigen.Beachten Sie im Abschnitt Aufgerufene Funktionen für
ProcessRequest
, dass die Funktion FeatureActiviated als am häufigsten aufgerufene Funktion aufgeführt ist.Wählen Sie im Abschnitt Aufgerufene Funktionen die Schaltfläche FeatureActivated aus.
Im Abschnitt Aufgerufene Funktionen für FeatureActivated wird die
TimeCounter
-Funktion als die am häufigsten aufgerufene Funktion aufgelistet. Im Bereich Funktionscodeansicht zeigt der hervorgehobene Code (TimeCounter
) den Bereich an, in dem es Korrekturen bedarf.Schließen Sie den Beispiel-Profilerstellungsbericht.
Öffnen Sie zum erneuten Anzeigen des Berichts die VSP-Datei im Fenster Leistungs-Explorer.
Korrigieren des Codes und erneute Profilerstellung der Anwendung
Beheben Sie nun nach Ermittlung der fehlerhaften Funktion in der SharePoint-Anwendung das Problem.
So beheben Sie den Code und nehmen eine erneute Profilerstellung der Anwendung vor
Kommentieren Sie im Funktionsereignisempfänger-Code den
TimeCounter
-Methodenaufruf inFeatureActivated
aus, um zu verhindern, dass er aufgerufen wird.Speichern Sie das Projekt.
Öffnen Sie im Leistungs-Explorer den Ordner „Ziele“, und wählen Sie dann den Knoten ProfileTest aus.
Wählen Sie in der Symbolleiste des Leistungs-Explorers auf der Registerkarte Aktionen die Schaltfläche Profilerstellung starten aus.
Wenn Sie Profilerstellungseigenschaften vor dem erneuten Vornehmen der Profilerstellung der Anwendung ändern möchten, müssen Sie stattdessen die Schaltfläche Leistungs-Assistenten starten auswählen.
Befolgen Sie die Anweisungen im Abschnitt Ausführen der SharePoint-Anwendung, der sich weiter oben in diesem Thema befindet.
Die Funktion sollte nun weitaus schneller aktiviert werden, da der Aufruf der Leerlaufschleife beseitigt wurde. Im Beispiel-Profilerstellungsbericht wird dies berücksichtigt.