Comment : ajouter et supprimer des instances de compteur de performance

Mise à jour : novembre 2007

Vous pouvez ajouter et supprimer des instances dynamiquement lorsque vous travaillez avec des compteurs et des catégories. Par exemple, vous pouvez ajouter une instance pour chaque utilisateur d'une application Web de vente au détail afin d'obtenir des informations sur ses actions, puis supprimer cette instance à l'expiration de la session de l'utilisateur.

Vous ajoutez des instances en définissant une valeur brute pour un compteur. Si aucune instance n'existe pour le compteur, une instance est créée la première fois que vous définissez la propriété RawValue, après quoi toutes les actions modifiant la valeur brute sont supposées affecter cette instance si aucune autre n'est spécifiée. Vous pouvez créer des instances supplémentaires en spécifiant un nouveau nom d'instance, puis en définissant pour lui une valeur.

Remarque :

C'est le fait de définir la valeur de l'instance et non celui de spécifier le nom d'une nouvelle instance, qui crée l'instance.

À la différence des compteurs, qui ne peuvent pas être ajoutés à une catégorie existante sauf dans le cadre de la création d'une catégorie, les instances peuvent à tout moment être ajoutées et supprimées des catégories définies par l'utilisateur. Vous pouvez utiliser la propriété InstanceName pour passer d'une instance à une autre.

Vous pouvez faire appel à la méthode RemoveInstance pour supprimer de la mémoire une instance d'un compteur de performance personnalisé. Prenons l'exemple d'une application Web de vente au détail qui utilise une catégorie appelée OrderInProgress dans laquelle vous conservez des instances pour le panier d'achat en cours de chaque utilisateur. Lorsqu'un utilisateur ajoute pour la première fois un article à son panier d'achat, l'application crée une nouvelle instance pour l'utilisateur. Lorsque l'utilisateur termine sa commande, l'application supprime l'instance. Pendant la commande, vous mettez à jour l'instance avec des compteurs tels que NumberofItemsinCart, TimeSinceCreation et NumberofItemsAddedPerSecond.

Vous ne pouvez pas supprimer des instances de compteur de performance faisant partie de Windows par défaut. Si votre composant PerformanceCounter ne fait pas référence à une instance valide, cette méthode lève une exception.

Remarque :

La classe PerformanceCounter n'est pas entièrement prise en charge dans Microsoft Windows NT version 4.0. Vous pouvez lire des données à partir des compteurs système, mais vous ne pouvez pas créer ou supprimer des compteurs personnalisés, ni y écrire.

Pour ajouter une instance de compteur de performance

  1. Créez vos catégories et vos compteurs normalement. Pour plus d'informations, consultez Comment : créer des catégories de compteurs de performance.

  2. Définissez la propriété InstanceName en spécifiant un nom unique pour l'instance, puis définissez la propriété RawValue de l'instance.

    Le code suivant montre comment créer plusieurs instances d'une catégorie de compteurs de performance existante :

    ' Assumes the category and counter have already been created.
    Dim myCounter As New System.Diagnostics.PerformanceCounter( _
       "cat", "counter", "instance1", False)
    ' Set the raw value to automatically create instance1.
    myCounter.RawValue = 100
    ' State that you will now be working with a different instance.
    myCounter.InstanceName = "instance2"
    ' Setting the value actually creates instance2.
    myCounter.RawValue = 200
    
         // Assumes category and counter have been created.
            System.Diagnostics.PerformanceCounter myCounter =
               new System.Diagnostics.PerformanceCounter(
               "cat", "counter", "instance1", false);
            // Set the raw value to automatically create instance1.
            myCounter.RawValue = 100;
            // State that you will now be working with a different instance.
            myCounter.InstanceName = "instance2";
            // Setting the value actually creates instance2.
            myCounter.RawValue = 200;
    
    

Pour supprimer une instance de compteur de performance

  1. Créez une instance du composant PerformanceCounter qui soit connectée au compteur à partir duquel vous voulez supprimer une instance. Pour plus d'informations, consultez Comment : créer des instances du composant PerformanceCounter.

  2. Affectez à la propriété InstanceName l'instance à supprimer.

  3. Appelez la méthode RemoveInstance sur votre composant.

    L'exemple suivant montre comment supprimer d'un compteur une instance appelée Reference :

    ' Assumes that you have configured PerformanceCounter1 to
    ' interact with the appropriate counter.
    PerformanceCounter1.InstanceName = "Reference"
    PerformanceCounter1.RemoveInstance()
    
         // Assumes that you have configured PerformanceCounter1 to
            // interact with the appropriate counter.
            PerformanceCounter1.InstanceName = "Reference";
            PerformanceCounter1.RemoveInstance();
    

Voir aussi

Tâches

Comment : créer des instances du composant PerformanceCounter

Concepts

Gestion des catégories et des compteurs