This documentation is archived and is not being maintained.

PerformanceCounter.InstanceName Property

Gets or sets an instance name for this performance counter.

Namespace: System.Diagnostics
Assembly: System (in system.dll)

[TypeConverterAttribute("System.Diagnostics.Design.InstanceNameConverter, System.Design, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] 
public string InstanceName { get; set; }
/** @property */
public String get_InstanceName ()

/** @property */
public void set_InstanceName (String value)

public function get InstanceName () : String

public function set InstanceName (value : String)

Not applicable.

Property Value

The name of the performance counter category instance, or an empty string (""), if the counter is a single-instance counter.


Instance names must be shorter than 128 characters in length.

In some situations, categories are subdivided into instances, which track data about multiple occurrences of the object that a category relates to. Instances apply to the category as whole, rather than to individual counters. Every counter within a category has each instance defined for the category. For example, the Process category contains instances named Idle and System. Every counter within the Process category thus contains data for each instance, showing information about either idle processes or system processes.

Many categories do not contain multiple instances, so you can leave this property empty to indicate that no instance is associated with the category.

If this PerformanceCounter instance points to a noncustom category, you can choose from only the existing category instances. You can create new category instances only in custom categories, which allow you to define as many counters and category instances as you need.

To create a performance category instance, specify an instanceName on the PerformanceCounter constructor. If the category instance specified by instanceName already exists the new object will reference the existing category instance.


Do not use the characters "(", ")", "#", "\", or "/" in the instance name. If any of these characters are used, the Performance Console (see Runtime Profiling) may not correctly display the instance values.

If the instance name is automatically generated and might contain the characters "(", ")", "#", "\", or "/", use the character mapping in the following table.


Mapped character











The FriendlyName property of the AppDomain object obtained from the AppDomain.CurrentDomain property is a common source of instance names that can contain invalid characters.

The following code example creates a default instance of the PerformanceCounter class. After the instance is created, the CategoryName, CounterName, and InstanceName property values are set, and the results of a call to the NextValue method are displayed.

PerformanceCounter PC=new PerformanceCounter();
PC.CounterName="Private Bytes";

PerformanceCounter pc = new PerformanceCounter();
pc.set_CounterName("Private Bytes");

Windows 98, Windows Server 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0