PerformanceCounterCategory.Create Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Inscrit une catégorie de compteurs de performance personnalisée, ainsi qu'un ou plusieurs compteurs sur le système.
Surcharges
Create(String, String, String, String) |
Obsolète.
Obsolète.
Obsolète.
Inscrit une catégorie de compteurs de performance personnalisée contenant un seul compteur de type |
Create(String, String, PerformanceCounterCategoryType, String, String) |
Inscrit la catégorie de compteurs de performance personnalisée contenant un seul compteur de type NumberOfItems32 situé sur l'ordinateur local. |
Create(String, String, CounterCreationDataCollection) |
Obsolète.
Obsolète.
Obsolète.
Inscrit la catégorie de compteurs de performance personnalisée qui contient les compteurs spécifiés de l'ordinateur local. |
Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection) |
Inscrit la catégorie de compteurs de performance personnalisée qui contient les compteurs spécifiés de l'ordinateur local. |
Create(String, String, String, String)
Attention
This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. http://go.microsoft.com/fwlink/?linkid=14202
Attention
This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. https://go.microsoft.com/fwlink/?linkid=14202
Attention
This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.
Inscrit une catégorie de compteurs de performance personnalisée contenant un seul compteur de type NumberOfItems32
situé sur l'ordinateur local.
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::String ^ counterName, System::String ^ counterHelp);
[System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[<System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. https://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, counterName As String, counterHelp As String) As PerformanceCounterCategory
Paramètres
- categoryName
- String
Nom de la catégorie de compteurs de performance personnalisée (objet de performance) à créer et inscrire sur le système.
- categoryHelp
- String
Description de la catégorie personnalisée.
- counterName
- String
Nom d'un nouveau compteur de type NumberOfItems32
à créer en tant que composant de la nouvelle catégorie.
- counterHelp
- String
Description du compteur associé à la nouvelle catégorie personnalisée.
Retours
PerformanceCounterCategory associé à la nouvelle catégorie système, ou objet de performance.
- Attributs
Exceptions
counterName
a la valeur null
ou est une chaîne vide ("").
-ou-
Le compteur spécifié par counterName
existe déjà.
- ou -
counterName
contient une syntaxe non valide. Il peut contenir des barres obliques inverses (« \ ») ou avoir une longueur supérieure à 80 caractères.
La catégorie existe déjà sur l'ordinateur local.
Échec de l'appel à une API système sous-jacente.
Code s'exécutant sans privilèges d'administrateur, destiné à lire un compteur de performance.
Exemples
L’exemple de code suivant crée un PerformanceCounterCategory et unique PerformanceCounter avec le texte d’aide pour chacun, à l’aide de la Create(String, String, String, String) méthode .
public static void Main(string[] args)
{
string categoryName = "";
string counterName = "";
string categoryHelp = "";
string counterHelp = "";
PerformanceCounterCategory pcc;
// Copy the supplied arguments into the local variables.
try
{
categoryName = args[0];
counterName = args[1];
categoryHelp = args[2];
counterHelp = args[3];
}
catch(Exception ex)
{
// Ignore the exception from non-supplied arguments.
}
Console.WriteLine("Category name: \"{0}\"", categoryName);
Console.WriteLine("Category help: \"{0}\"", categoryHelp);
Console.WriteLine("Counter name: \"{0}\"", counterName);
Console.WriteLine("Counter help: \"{0}\"", counterHelp);
// Use the Create overload that creates a single counter.
try
{
pcc = PerformanceCounterCategory.Create(categoryName, categoryHelp, counterName, counterHelp);
Console.WriteLine("Category \"{0}\" created.", pcc.CategoryName);
}
catch(Exception ex)
{
Console.WriteLine("Unable to create the above category and counter:" + "\n" + ex.Message);
}
}
Sub Main(ByVal args() As String)
Dim categoryName As String = ""
Dim counterName As String = ""
Dim categoryHelp As String = ""
Dim counterHelp As String = ""
Dim pcc As PerformanceCounterCategory
' Copy the supplied arguments into the local variables.
Try
categoryName = args(0)
counterName = args(1)
categoryHelp = args(2)
counterHelp = args(3)
Catch ex As Exception
' Ignore the exception from non-supplied arguments.
End Try
Console.WriteLine("Category name: ""{0}""", categoryName)
Console.WriteLine("Category help: ""{0}""", categoryHelp)
Console.WriteLine("Counter name: ""{0}""", counterName)
Console.WriteLine("Counter help: ""{0}""", counterHelp)
' Use the Create overload that creates a single counter.
Try
pcc = PerformanceCounterCategory.Create( _
categoryName, categoryHelp, counterName, counterHelp)
Console.WriteLine("Category ""{0}"" created.", pcc.CategoryName)
Catch ex As Exception
Console.WriteLine( _
"Unable to create the above category and counter:" & _
vbCrLf & ex.Message)
End Try
End Sub
Remarques
Notes
Pour lire les compteurs de performances à partir d’une session d’ouverture de session non interactive dans Windows Vista et versions ultérieures, Windows XP Professionnel Édition x64 ou Windows Server 2003, vous devez être membre du groupe Utilisateurs Analyseur de performances ou disposer de privilèges d’administrateur.
Pour éviter d’avoir à élever vos privilèges pour accéder aux compteurs de performances dans Windows Vista et versions ultérieures, ajoutez-vous au groupe Analyseur de performances Utilisateurs.
Dans Windows Vista et version ultérieure, le contrôle de compte d'utilisateur détermine les privilèges d'un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Pour exécuter le code qui accède aux compteurs de performances, vous devez d’abord élever vos privilèges d’utilisateur standard à administrateur. Vous pouvez effectuer cela au démarrage d'une application en cliquant avec le bouton droit sur l'icône de l'application et en indiquant que vous voulez l'exécuter en tant qu'administrateur.
Voir aussi
S’applique à
Create(String, String, PerformanceCounterCategoryType, String, String)
Inscrit la catégorie de compteurs de performance personnalisée contenant un seul compteur de type NumberOfItems32 situé sur l'ordinateur local.
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::PerformanceCounterCategoryType categoryType, System::String ^ counterName, System::String ^ counterHelp);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.PerformanceCounterCategoryType categoryType, string counterName, string counterHelp);
static member Create : string * string * System.Diagnostics.PerformanceCounterCategoryType * string * string -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, categoryType As PerformanceCounterCategoryType, counterName As String, counterHelp As String) As PerformanceCounterCategory
Paramètres
- categoryName
- String
Nom de la catégorie de compteurs de performance personnalisée (objet de performance) à créer et inscrire sur le système.
- categoryHelp
- String
Description de la catégorie personnalisée.
- categoryType
- PerformanceCounterCategoryType
L'une des valeurs PerformanceCounterCategoryType qui spécifie si la catégorie est MultiInstance, SingleInstance ou Unknown.
- counterName
- String
Nom d'un nouveau compteur à créer en tant que composant de la nouvelle catégorie.
- counterHelp
- String
Description du compteur associé à la nouvelle catégorie personnalisée.
Retours
PerformanceCounterCategory associé à la nouvelle catégorie système, ou objet de performance.
Exceptions
counterName
a la valeur null
ou est une chaîne vide ("").
-ou-
Le compteur spécifié par counterName
existe déjà.
- ou -
counterName
contient une syntaxe non valide. Il peut contenir des barres obliques inverses (« \ ») ou avoir une longueur supérieure à 80 caractères.
La catégorie existe déjà sur l'ordinateur local.
Échec de l'appel à une API système sous-jacente.
Code s'exécutant sans privilèges d'administrateur, destiné à lire un compteur de performance.
Exemples
L’exemple de code suivant montre l’utilisation de la Create méthode . L’exemple montre comment créer une catégorie de compteur de performances unique instance personnalisée.
Console.WriteLine("Creating Inventory custom counter");
if (!PerformanceCounterCategory.Exists("Inventory"))
PerformanceCounterCategory.Create("Inventory",
"Truck inventory",
PerformanceCounterCategoryType.SingleInstance,
"Trucks", "Number of trucks on hand");
Console.WriteLine("Creating Inventory custom counter")
If Not PerformanceCounterCategory.Exists("Inventory") Then
PerformanceCounterCategory.Create("Inventory", "Truck inventory", PerformanceCounterCategoryType.SingleInstance, "Trucks", "Number of trucks on hand")
End If
Remarques
Le categoryType
paramètre spécifie si la catégorie de compteur de performances est mono-instance ou multi-instance. Par défaut, une catégorie est instance unique lors de sa création et devient multi-instance lorsqu’une autre instance est ajoutée. Les catégories sont créées lorsqu’une application est configurée et que des instances sont ajoutées au moment de l’exécution. Dans les versions 1.0 et 1.1 du .NET Framework, il n’est pas nécessaire de savoir si une catégorie de compteurs de performances est multi-instance ou instance unique. Dans .NET Framework 2.0, l’énumération PerformanceCounterCategoryType est utilisée pour indiquer si un compteur de performances peut avoir plusieurs instances.
Les catégories de compteurs de performances installées avec .NET Framework 2.0 utilisent une mémoire partagée distincte, chaque catégorie de compteurs de performances ayant sa propre mémoire. Vous pouvez spécifier la taille de la mémoire partagée distincte en créant un DWORD nommé FileMappingSize dans la clé de Registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nom> de catégorie\Performance. La valeur FileMappingSize est définie sur la taille de mémoire partagée de la catégorie. La taille par défaut est 131072 décimal. Si la valeur FileMappingSize n’est pas présente, la fileMappingSize
valeur d’attribut de l’élément performanceCounters
spécifié dans le fichier Machine.config est utilisée, ce qui entraîne une surcharge supplémentaire pour le traitement des fichiers de configuration. Vous pouvez réaliser une amélioration des performances pour le démarrage de l’application en définissant la taille du mappage de fichiers dans le Registre.
Notes
Il est vivement recommandé de créer de nouvelles catégories de compteurs de performances pendant l’installation de l’application, et non pendant l’exécution de l’application. Cela laisse le temps au système d’exploitation d’actualiser sa liste de catégories de compteurs de performances inscrites. Si la liste n’a pas été actualisée, la tentative d’utilisation de la catégorie échoue.
Notes
Pour lire les compteurs de performances à partir d’une session d’ouverture de session non interactive dans Windows Vista et versions ultérieures, Windows XP Professionnel Édition x64 ou Windows Server 2003, vous devez être membre du groupe Utilisateurs Analyseur de performances ou disposer de privilèges d’administrateur.
Pour éviter d’avoir à élever vos privilèges pour accéder aux compteurs de performances dans Windows Vista et versions ultérieures, ajoutez-vous au groupe Analyseur de performances Utilisateurs.
Dans Windows Vista et version ultérieure, le contrôle de compte d'utilisateur détermine les privilèges d'un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Pour exécuter le code qui accède aux compteurs de performances, vous devez d’abord élever vos privilèges d’utilisateur standard à administrateur. Vous pouvez effectuer cela au démarrage d'une application en cliquant avec le bouton droit sur l'icône de l'application et en indiquant que vous voulez l'exécuter en tant qu'administrateur.
Voir aussi
S’applique à
Create(String, String, CounterCreationDataCollection)
Attention
This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. http://go.microsoft.com/fwlink/?linkid=14202
Attention
This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. https://go.microsoft.com/fwlink/?linkid=14202
Attention
This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.
Inscrit la catégorie de compteurs de performance personnalisée qui contient les compteurs spécifiés de l'ordinateur local.
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::CounterCreationDataCollection ^ counterData);
[System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[<System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. https://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, counterData As CounterCreationDataCollection) As PerformanceCounterCategory
Paramètres
- categoryName
- String
Nom de la catégorie de compteurs de performance personnalisée (objet de performance) à créer et inscrire sur le système.
- categoryHelp
- String
Description de la catégorie personnalisée.
- counterData
- CounterCreationDataCollection
CounterCreationDataCollection spécifiant les compteurs à créer en tant que composants de la nouvelle catégorie.
Retours
PerformanceCounterCategory associé à la nouvelle catégorie personnalisée, ou objet de performance.
- Attributs
Exceptions
Un nom de compteur spécifié dans la collection counterData
est null
ou une chaîne vide ("").
- ou -
Un compteur spécifié dans la collection counterData
existe déjà.
- ou -
La syntaxe du paramètre counterName
n'est pas valide. Il peut contenir des barres obliques inverses (« \ ») ou avoir une longueur supérieure à 80 caractères.
Le paramètre categoryName
a la valeur null
.
La catégorie existe déjà sur l'ordinateur local.
- ou -
La disposition de la collection counterData
est incorrecte pour les compteurs de base. Un compteur du type AverageCount64
, AverageTimer32
, CounterMultiTimer
, CounterMultiTimerInverse
, CounterMultiTimer100Ns
, CounterMultiTimer100NsInverse
, RawFraction
, SampleFraction
ou SampleCounter
doit être immédiatement suivi d’un des types de compteurs de base (AverageBase
, MultiBase
, RawBase
ou SampleBase
).
Échec de l'appel à une API système sous-jacente.
Code s'exécutant sans privilèges d'administrateur, destiné à lire un compteur de performance.
Exemples
L’exemple de code suivant détermine si un PerformanceCounterCategory objet nommé « orders » existe. Si ce n’est pas le cas, il crée l’objet à l’aide PerformanceCounterCategory d’un CounterCreationDataCollection objet qui contient deux compteurs de performances.
if ( !PerformanceCounterCategory::Exists( "Orders" ) )
{
CounterCreationData^ milk = gcnew CounterCreationData;
milk->CounterName = "milk";
milk->CounterType = PerformanceCounterType::NumberOfItems32;
CounterCreationData^ milkPerSecond = gcnew CounterCreationData;
milkPerSecond->CounterName = "milk orders/second";
milkPerSecond->CounterType = PerformanceCounterType::RateOfCountsPerSecond32;
CounterCreationDataCollection^ ccds = gcnew CounterCreationDataCollection;
ccds->Add( milkPerSecond );
ccds->Add( milk );
PerformanceCounterCategory::Create( "Orders", "Number of processed orders", ccds );
}
if (!PerformanceCounterCategory.Exists("Orders"))
{
CounterCreationData milk = new CounterCreationData();
milk.CounterName = "milk";
milk.CounterType = PerformanceCounterType.NumberOfItems32;
CounterCreationData milkPerSecond = new CounterCreationData();
milkPerSecond.CounterName = "milk orders/second";
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(milkPerSecond);
ccds.Add(milk);
PerformanceCounterCategory.Create("Orders", "Number of processed orders",
PerformanceCounterCategoryType.SingleInstance, ccds);
}
If Not PerformanceCounterCategory.Exists("Orders") Then
Dim milk As New CounterCreationData()
milk.CounterName = "milk"
milk.CounterType = PerformanceCounterType.NumberOfItems32
Dim milkPerSecond As New CounterCreationData()
milkPerSecond.CounterName = "milk orders/second"
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32
Dim ccds As New CounterCreationDataCollection()
ccds.Add(milkPerSecond)
ccds.Add(milk)
PerformanceCounterCategory.Create("Orders", "Number of processed orders", _
PerformanceCounterCategoryType.SingleInstance, ccds)
End If
Remarques
Notes
Pour lire les compteurs de performances à partir d’une session d’ouverture de session non interactive dans Windows Vista et versions ultérieures, Windows XP Professionnel Édition x64 ou Windows Server 2003, vous devez être membre du groupe Utilisateurs Analyseur de performances ou disposer de privilèges d’administrateur.
Pour éviter d’avoir à élever vos privilèges pour accéder aux compteurs de performances dans Windows Vista et versions ultérieures, ajoutez-vous au groupe Analyseur de performances Utilisateurs.
Dans Windows Vista et version ultérieure, le contrôle de compte d'utilisateur détermine les privilèges d'un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Pour exécuter le code qui accède aux compteurs de performances, vous devez d’abord élever vos privilèges d’utilisateur standard à administrateur. Vous pouvez effectuer cela au démarrage d'une application en cliquant avec le bouton droit sur l'icône de l'application et en indiquant que vous voulez l'exécuter en tant qu'administrateur.
Voir aussi
S’applique à
Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)
Inscrit la catégorie de compteurs de performance personnalisée qui contient les compteurs spécifiés de l'ordinateur local.
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::PerformanceCounterCategoryType categoryType, System::Diagnostics::CounterCreationDataCollection ^ counterData);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.PerformanceCounterCategoryType categoryType, System.Diagnostics.CounterCreationDataCollection counterData);
static member Create : string * string * System.Diagnostics.PerformanceCounterCategoryType * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, categoryType As PerformanceCounterCategoryType, counterData As CounterCreationDataCollection) As PerformanceCounterCategory
Paramètres
- categoryName
- String
Nom de la catégorie de compteurs de performance personnalisée (objet de performance) à créer et inscrire sur le système.
- categoryHelp
- String
Description de la catégorie personnalisée.
- categoryType
- PerformanceCounterCategoryType
Une des valeurs de l'objet PerformanceCounterCategoryType.
- counterData
- CounterCreationDataCollection
CounterCreationDataCollection spécifiant les compteurs à créer en tant que composants de la nouvelle catégorie.
Retours
PerformanceCounterCategory associé à la nouvelle catégorie personnalisée, ou objet de performance.
Exceptions
Un nom de compteur spécifié dans la collection counterData
est null
ou une chaîne vide ("").
- ou -
Un compteur spécifié dans la collection counterData
existe déjà.
- ou -
counterName
contient une syntaxe non valide. Il peut contenir des barres obliques inverses (« \ ») ou avoir une longueur supérieure à 80 caractères.
La valeur categoryType
ne figure pas dans la plage des valeurs suivantes : MultiInstance
, SingleInstance
ou Unknown
.
La catégorie existe déjà sur l'ordinateur local.
- ou -
La disposition de la collection counterData
est incorrecte pour les compteurs de base. Un compteur du type AverageCount64
, AverageTimer32
, CounterMultiTimer
, CounterMultiTimerInverse
, CounterMultiTimer100Ns
, CounterMultiTimer100NsInverse
, RawFraction
, SampleFraction
ou SampleCounter
doit être immédiatement suivi d’un des types de compteurs de base (AverageBase
, MultiBase
, RawBase
ou SampleBase
).
Échec de l'appel à une API système sous-jacente.
Code s'exécutant sans privilèges d'administrateur, destiné à lire un compteur de performance.
Exemples
L’exemple de code suivant montre l’utilisation de la Create méthode . L’exemple montre comment créer une catégorie de compteur de performances multi-instance personnalisée pour le nombre de commandes par seconde.
CounterCreationData data1 = new CounterCreationData("Trucks",
"Number of orders", PerformanceCounterType.NumberOfItems32);
CounterCreationData data2 = new CounterCreationData("Rate of sales",
"Orders/second", PerformanceCounterType.RateOfCountsPerSecond32);
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(data1);
ccds.Add(data2);
Console.WriteLine("Creating Orders custom counter.");
if (!PerformanceCounterCategory.Exists("Orders"))
PerformanceCounterCategory.Create("Orders",
"Processed orders",
PerformanceCounterCategoryType.MultiInstance,
ccds);
Dim data1 As New CounterCreationData("Trucks", "Number of orders", PerformanceCounterType.NumberOfItems32)
Dim data2 As New CounterCreationData("Rate of sales", "Orders/second", PerformanceCounterType.RateOfCountsPerSecond32)
Dim ccds As New CounterCreationDataCollection()
ccds.Add(data1)
ccds.Add(data2)
Console.WriteLine("Creating Orders custom counter.")
If Not PerformanceCounterCategory.Exists("Orders") Then
PerformanceCounterCategory.Create("Orders", "Processed orders", PerformanceCounterCategoryType.MultiInstance, ccds)
End If
Remarques
Le categoryType
paramètre spécifie si la catégorie de compteur de performances est mono-instance ou multi-instance. Par défaut, une catégorie est instance unique lors de sa création et devient multi-instance lorsqu’une autre instance est ajoutée. Les catégories sont créées lorsqu’une application est configurée et que des instances sont ajoutées au moment de l’exécution. Dans les versions 1.0 et 1.1 du .NET Framework, il n’est pas nécessaire de savoir si une catégorie de compteurs de performances est multi-instance ou instance unique. Dans .NET Framework 2.0, l’énumération PerformanceCounterCategoryType est utilisée pour indiquer si un compteur de performances peut avoir plusieurs instances.
Les catégories de compteurs de performances installées avec .NET Framework 2.0 utilisent une mémoire partagée distincte, chaque catégorie de compteurs de performances ayant sa propre mémoire. Vous pouvez spécifier la taille de la mémoire partagée distincte en créant un DWORD nommé FileMappingSize dans la clé de Registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nom> de catégorie\Performance. La valeur FileMappingSize est définie sur la taille de mémoire partagée de la catégorie. La taille par défaut est 131072 décimal. Si la valeur FileMappingSize n’est pas présente, la fileMappingSize
valeur d’attribut de l’élément performanceCounters
spécifié dans le fichier Machine.config est utilisée, ce qui entraîne une surcharge supplémentaire pour le traitement des fichiers de configuration. Vous pouvez réaliser une amélioration des performances pour le démarrage de l’application en définissant la taille du mappage de fichiers dans le Registre.
Notes
Il est vivement recommandé de créer de nouvelles catégories de compteurs de performances pendant l’installation de l’application, et non pendant l’exécution de l’application. Cela laisse le temps au système d’exploitation d’actualiser sa liste de catégories de compteurs de performances inscrites. Si la liste n’a pas été actualisée, la tentative d’utilisation de la catégorie échoue.
Notes
Pour lire les compteurs de performances à partir d’une session d’ouverture de session non interactive dans Windows Vista et versions ultérieures, Windows XP Professionnel Édition x64 ou Windows Server 2003, vous devez être membre du groupe Utilisateurs Analyseur de performances ou disposer de privilèges d’administrateur.
Pour éviter d’avoir à élever vos privilèges pour accéder aux compteurs de performances dans Windows Vista et versions ultérieures, ajoutez-vous au groupe Analyseur de performances Utilisateurs.
Dans Windows Vista et version ultérieure, le contrôle de compte d'utilisateur détermine les privilèges d'un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Pour exécuter le code qui accède aux compteurs de performances, vous devez d’abord élever vos privilèges d’utilisateur standard à administrateur. Vous pouvez effectuer cela au démarrage d'une application en cliquant avec le bouton droit sur l'icône de l'application et en indiquant que vous voulez l'exécuter en tant qu'administrateur.