Partager via


Procédure pas à pas : profilage d'une application SharePoint

Cette procédure pas - à - pas montre comment utiliser les outils de profilage dans Visual Studio pour optimiser les performances d'une application SharePoint.L'application d'exemple est un récepteur d'événements de fonctionnalité SharePoint qui contient une boucle inactive qui dégrade les performances du récepteur d'événements de fonctionnalité.Le profileur Visual Studio vous permet de définir et supprimer la partie (accès effectuante) la plus coûteuse du projet, également connu sous le nom de chemin d'accès à chaud.

Cette procédure pas à pas présente les tâches suivantes :

  • Ajouter une fonctionnalité et un récepteur d'événements de fonctionnalité.

  • Configuration et déploiement de l'application SharePoint.

  • Exécuter l'application SharePoint.

  • Consultation et interprétant les résultats de profilage.

[!REMARQUE]

Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur de Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.

Composants requis

Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :

Création d'un projet SharePoint

d'abord, créez un projet SharePoint.

Pour créer un projet SharePoint

  1. Dans la barre de menus, sélectionnez Fichier, Nouveau, Projet pour afficher la boîte de dialogue Nouveau projet .

  2. Développez le nœud SharePoint sous Visual C# ou Visual Basic, puis sélectionnez le nœud 2010 .

  3. Dans le volet modèles, sélectionnez le modèle Projet SharePoint 2010 .

  4. Dans la zone Nom , entrez ProfileTest, puis choisissez le bouton OK .

    L'Assistant Personnalisation de SharePoint s'affiche.

  5. Dans la page Spécifier le site et le niveau de sécurité pour le débogage, entrez l'URL du site du serveur SharePoint où vous souhaitez déboguer la définition de site, ou utilisez l'emplacement par défaut (http://nom du système/).

  6. Dans la section Quel est le niveau de confiance de la solution SharePoint ? , sélectionnez la case d'option Déployer une solution de batterie .

    Actuellement, vous ne pouvez profiler des solutions de batterie.Pour plus d'informations sur les différences entre les solutions bac à sable (sandbox) et les solutions de batterie, consultez Considérations sur les solutions bac à sable (sandbox).

  7. Choisissez le bouton Terminer .Le projet s'affiche dans l'Explorateur de solutions.

Ajouter une fonctionnalité et un récepteur d'événements de fonctionnalité

Ensuite, ajoutez une fonctionnalité au projet avec un récepteur d'événements pour la fonctionnalité.Ce récepteur d'événements contient le code à profiler.

Pour ajouter une fonctionnalité et un récepteur d'événements de fonctionnalité

  1. Dans Explorateur de solutions, ouvrez le menu contextuel du nœud fonctionnalités , choisissez ajoutez la fonctionnalité, et laisser le nom à la valeur par défaut, Feature1.

  2. Dans Explorateur de solutions, ouvrez le menu contextuel pour Feature1, puis choisissez ajoutez le récepteur d'événements.

    Cela ajoute un fichier de code à la fonctionnalité avec plusieurs gestionnaires d'événements commentés - et ouvre le fichier à modifier.

  3. En cas de la classe de récepteur, ajoutez les déclarations de variables suivantes.

    ' 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. Remplacez la procédure FeatureActivated par le code suivant.

    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. Ajoutez la procédure suivante sous la procédure d' 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. Dans Explorateur de solutions, ouvrez le menu contextuel du projet (ProfileTest), puis choisissez Propriétés.

  7. Dans la boîte de dialogue Propriétés , choisissez SharePoint tableau.

  8. Dans la liste configuration de déploiement active , choisissez aucun lancement.

    Activer cette configuration de déploiement permet d'activer manuellement la fonctionnalité ultérieurement dans SharePoint.

  9. Enregistrez le projet.

Configuration et déploiement de l'application SharePoint

Maintenant que le projet SharePoint est prêt, configurez -le et déployez le sur le serveur SharePoint.

Pour configurer et déployer l'application SharePoint

  1. Dans le menu Analyser , choisissez Exécutez l'Assistant performance.

  2. à la page une L'Assistant performance, laissez la méthode de profilage comme Échantillonnage de l'UC et choisissez le bouton Suivant .

    Les autres méthodes de profilage peuvent être utilisées dans des situations plus avancées de profilage.Pour plus d’informations, consultez Fonctionnement des méthodes de profilage.

  3. À la page deux L'Assistant performance, laissez la cible de profil en tant que ProfileTest et choisissez le bouton Suivant .

    Si une solution comporte plusieurs projets, ils apparaissent dans cette liste.

  4. Dans la page de trois L'Assistant performance, désactivez la case à cocher activez le profilage d'interaction de couche , puis choisissez le bouton Suivant .

    L'interaction de couche de profilage la fonctionnalité de (TIP) est utile pour mesurer les performances des applications qui questionnent des bases de données et pour vous indiquer le nombre de fois une page Web est demandée.Étant donné qu'il n'a pas besoinavoir besoin de ce pour cet exemple, nous n'activerons pas cette fonctionnalité.

  5. À la page quatre L'Assistant performance, laissez la case à cocher Profilage de lancement après la fin de l'assistant sélectionnée, puis choisissez le bouton Terminer .

    L'assistant active le profilage de l'application sur le serveur, affiche la fenêtre Explorateur de performances , puis générer, déployer, et exécute l'application SharePoint.

Exécuter l'application SharePoint

Activez la fonctionnalité dans SharePoint, déclenchant le code d'événement d' FeatureActivation pour exécuter.

Pour exécuter l'application SharePoint

  1. Dans SharePoint, ouvrez le menu actions de site , puis choisissez Paramètres de site.

  2. Dans la liste Recherchez les actions , cliquez sur le lien Gérez les fonctionnalités du site .

  3. Dans la liste fonctionnalités , choisissez le bouton Activer en regard ProfileTest Feature1.

    Il existe une pause dans ce cas, en raison de la boucle inactive appelée dans la fonction d' FeatureActivated .

  4. Dans la barre Lancement rapide , choisissez listes puis dans la liste listes , choisissez annonces.

    Notez qu'une annonce a été ajoutée à la liste indiquant que la fonction a été activée.

  5. Fermez le site SharePoint.

    Après avoir fermé SharePoint, le profileur crée et affiche un rapport de profilage d'échantillonnage et l'enregistre en tant que fichier .vsp dans le dossier du projet ProfileTest .

Consultation et interprétant les résultats de profilage

Maintenant que vous avez exécuté et est profilé l'application SharePoint, affichez les résultats des tests.

Pour afficher et interpréter les résultats de profilage

  1. Dans la section Fonctions exécutant le plus de travail individuel de l'état de profilage par exemple, notez qu' TimeCounter est en haut de la liste.

    Cet emplacement indique qu' TimeCounter est l'une des fonctions présentant le nombre élevé d'exemples, ce qui signifie qu'il est l'un des plus importants goulots d'étranglement au niveau de les performances de l'application.Cette situation n'est pas étonnante, toutefois, parce qu'il a express conçu de manière à des fins de démonstration.

  2. Dans la section Fonctions exécutant le plus de travail individuel , cliquez sur le lien d' ProcessRequest pour afficher la distribution des coûts de la fonction d' ProcessRequest .

    Dans la section fonctions appelées pour ProcessRequest, remarquez que la fonction FeatureActiviated est répertoriée comme la fonction appelée très coûteuse.

  3. Dans la section fonctions appelées , choisissez le bouton FeatureActivated .

    Dans la section fonctions appelées pour FeatureActivated, la fonction d' TimeCounter est répertoriée comme la fonction appelée très coûteuse.Dans le volet Affichage du Code de fonction , le code en surbrillance(TimeCounter) est la zone réactive et indique où la correction est nécessaire.

  4. Fermez l'état de profilage d'échantillonnage.

    Pour afficher l'état de nouveau à tout moment, ouvrez le fichier .vsp dans la fenêtre Explorateur de performances .

Résolution le code et le Reprofiling l'application

Maintenant que la fonction de zone réactive dans l'application SharePoint a été identifiée, résolvez-la.

Pour résoudre le code et reprofile l'application

  1. Dans le code de récepteur d'événements de fonctionnalité, commentez l'appel de méthode d' TimeCounter dans FeatureActivated pour l'empêcher d'être appelé.

  2. Enregistrez le projet.

  3. Dans Explorateur de performances, ouvrez le dossier de cibles, puis sélectionnez le nœud ProfileTest .

  4. Dans la barre d'outils Explorateur de performances , dans l'onglet Actions , choisissez le bouton commencez à profiler .

    Si vous souhaitez modifier l'une des propriétés de profilage avant de reprofiling l'application, choisissez le bouton Exécutez l'Assistant performance à la place.

  5. Suivez les instructions de la section exécuter l'application SharePoint , précédemment dans cette rubrique.

    La fonctionnalité doit exécuter plus rapidement maintenant qu'il a été supprimée l'appel à la boucle inactive.L'état de profilage de l'exemple doit refléter cette opération.

Voir aussi

Concepts

Analyse des performances de l'application à l'aide des outils de profilage

Vue d'ensemble de la session de performance des outils de profilage

Guide du débutant en profilage des performances

Autres ressources

Goulots d'étranglement d'application de recherche avec le profileur Visual Studio