Partager via


Guide pas à pas : profiler 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 la plus coûteuse (exécution la plus lente) du projet, également appelée chemin réactif.

Cette procédure pas à pas décrit les tâches suivantes :

Prérequis

Vous devez disposer des éléments suivants pour exécuter cette procédure pas à pas :

  • Éditions prises en charge de Microsoft Windows et SharePoint.

  • Visual Studio 2012.

Créer un projet SharePoint

Commencez par créer un projet SharePoint.

Pour créer un projet SharePoint

  1. Dans la barre de menu, choisissez 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 système/).

  6. Dans la section Quel est le niveau d’approbation de cette solution SharePoint ?, choisissez le bouton d’option Déployer en tant que solution de batterie de serveurs.

    Actuellement, vous ne pouvez profiler que des solutions de batterie. Pour plus d'informations sur les solutions bac à sable (sandbox) par rapport aux solutions de batterie, consultez Considérations sur les solutions bac à sable (sandbox).

  7. Cliquez sur le bouton Terminer. Le projet apparaît 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 contiendra le code à profiler.

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

  1. Dans l’Explorateur de solutions, ouvrez le menu contextuel du nœud Fonctionnalités, choisissez Ajouter une fonctionnalité, et conservez le nom par défaut, Feature1.

  2. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour Feature1, puis choisissez Ajouter un 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. Dans la classe de récepteur d'évènements, ajoutez les déclarations de variables suivantes.

    // SharePoint site/subsite.
    private string siteUrl = "http://localhost";
    private string webUrl = "/";
    
  4. Remplacez la procédure FeatureActivated par le code ci-dessous.

    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 FeatureActivated.

    public void TimeCounter()
    {
        for (int i = 0; i < 100000; i++)
        {
            for (int j = 0; j < 10000; j++)
            {
                int result = i * j;
            }
        }
    }
    
  6. Dans l'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 l'onglet SharePoint.

  8. Dans la liste Configuration de déploiement active, choisissez Aucune activation.

    Sélectionner cette configuration de déploiement vous permet d’activer manuellement la fonctionnalité ultérieurement dans SharePoint.

  9. Enregistrez le projet.

Configurer et déployer 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 Lancer l'Assistant Performance.

  2. Dans la première page de l'Assistant Performance, laissez la méthode de profilage sur Échantillonnage de l'UC et cliquez sur 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 Understanding Performance Collection Methods (Fonctionnement des méthodes de collecte des données de performances).

  3. Dans la deuxième page de l'Assistant Performance, laissez la cible de profil sur ProfileTest et cliquez sur le bouton Suivant.

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

  4. Dans la troisième page de l'Assistant Performance, désactivez la case à cocher Activer le profilage d'interaction de couche, puis cliquez sur le bouton Suivant.

    La fonctionnalité de profilage d’interaction de couche (TIP) est utile pour mesurer les performances des applications qui interrogent les bases de données et vous indiquer le nombre de fois qu’une page web est demandée. Étant donné que ces données ne sont pas requises pour cet exemple, nous n'activerons pas cette fonctionnalité.

  5. Dans la quatrième page de l'Assistant Performance, veillez à ce que la case Lancer le profilage une fois l'Assistant terminé reste cochée, puis cliquez sur le bouton Terminer.

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

Exécuter l’application SharePoint

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

Pour exécuter l'application SharePoint

  1. Dans SharePoint, ouvrez le menu Actions du site, puis sélectionnez Paramètres du site.

  2. Dans la liste Actions du site, sélectionnez le lien Gérer les fonctionnalités du site.

  3. Dans la liste Fonctionnalités, cliquez sur le bouton Activer à côté de ProfileTest Feature1.

    Ce faisant, une pause survient en raison de la boucle inactive appelée dans la fonction FeatureActivated.

  4. Dans la barre Lancement rapide, choisissez Listes, puis dans la liste Listes, choisissez Annonces.

    Notez qu’une nouvelle annonce a été ajoutée à la liste indiquant que la fonctionnalité 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’échantillon et l’enregistre en tant que fichier .vsp dans le dossier du projet ProfileTest.

Afficher et interpréter les résultats du profil

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

Afficher et interpréter les résultats du profil

  1. Dans la section Fonctions faisant le plus de travail individuel du rapport de profilage d'échantillon, notez que TimeCounter figure en haut de la liste.

    Cet emplacement indique que TimeCounter est l'une des fonctions présentant le plus grand nombre d'exemples ; autrement dit, il s'agit de l'un des plus importants goulots d'étranglement de performance de l'application. Toutefois, cette situation n'est pas étonnante, parce qu'elle a expressément été conçue à des fins de démonstration.

  2. Dans la section Fonctions faisant le plus de travail individuel, sélectionnez le lien ProcessRequest pour afficher la distribution des coûts de la fonction ProcessRequest.

    Dans la section Fonctions appelées pour ProcessRequest, notez que la fonction FeatureActiviated est répertoriée comme la fonction appelée la plus coûteuse.

  3. Dans la section Fonctions appelées, cliquez sur le bouton FeatureActivated.

    Dans la section Fonctions appelées pour FeatureActivated, la fonction TimeCounter est répertoriée comme la fonction appelée la plus coûteuse. Dans la section 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 le rapport de profilage de l'échantillon.

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

Corriger le code et reprofiler l'application

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

Pour corriger le code et reprofiler l'application

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

  2. Enregistrez le projet.

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

  4. Dans la barre d'outils Explorateur de performances, dans l'onglet Actions, cliquez sur le bouton Démarrer le profilage.

    Si vous souhaitez modifier les propriétés de profilage avant de reprofiler l'application, cliquez plutôt sur le bouton Lancer l'Assistant Performance.

  5. Suivez les instructions dans la section Exécution de l'application SharePoint, plus haut dans cette rubrique.

    Comme l'appel à la boucle inactive a été supprimé, la fonctionnalité doit s'activer beaucoup plus rapidement. Le rapport de profilage d'échantillon doit le refléter.