效能計數器的作用
可以跟蹤應用程式的資源使用、運行效率、負載和效能瓶頸等情況。
添加自訂效能計數器
方法一:通過Visual Studio添加效能計數器。
開啟Visual Studio的“Server Explorer”面板,串連到本機電腦,按右鍵 “Performance Counters”組,選擇“Create New Category”開啟添加分類視窗,如:
這裡可以設定分類名稱和描述,建立計數器並設定計數器的類型和描述。點擊OK按鈕完成後,你可以在“Performance Counters”中查看到你添加的自訂效能計數器,另外可以從註冊表中“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”節點查看。
方法二:通過編程方式添加效能計數器。
主要使用System.Diagnostics. PerformanceCounterCategory.Create方法,該方法目前有4個重載版本,如下:
public static PerformanceCounterCategory Create(string categoryName, string categoryHelp,
CounterCreationDataCollection counterData);
public static PerformanceCounterCategory Create(string categoryName, string categoryHelp,
PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData);
public static PerformanceCounterCategory Create(string categoryName, string categoryHelp,
string counterName, string counterHelp);
public static PerformanceCounterCategory Create(string categoryName, string categoryHelp,
PerformanceCounterCategoryType categoryType, string counterName, string counterHelp);
其中參數categoryType用來指示分類是單一實例(single-instance)、多執行個體(multi-instance)或Unknown類型,預設是單一實例,在.Net Framework 1.0/1.1中不需要指定該參數。
具體代碼如下:
using System;
using System.Diagnostics;
namespace MyPerformanceCounter
{
class Program
{
static void Main(string[] args)
{
CreateCounter();
Console.ReadLine();
}
public static void CreateCounter()
{
Console.WriteLine("Creating");
if (!PerformanceCounterCategory.Exists("MyCategory"))
{
PerformanceCounterCategory.Create("MyCategory",
"My category description.",
PerformanceCounterCategoryType.SingleInstance,
"MyCounter",
"This is my first custom performace counter.");
}
else
{
Console.WriteLine("MyCategory already exists");
}
Console.WriteLine("Done");
}
}
}
在代碼中使用效能計數器
這裡以使用Increment方法為例,代碼如下:
<asp:Button ID="btnIncrement" runat="server" onclick="btnIncrement_Click" Text="增加" />
protected void btnIncrement_Click(object sender, EventArgs e)
{
PerformanceCounter counter = new PerformanceCounter();
counter.CategoryName = "MyCategory";
counter.CounterName = "MyCounter";
counter.ReadOnly = false;
counter.Increment();
counter.Close();
}
監視效能計數器
開啟管理工具(Administrative Tools)中的效能監控器(Performance Monitor),將自訂的計數器添加到監視器中,點擊Web頁面中的“增加”按鈕,可以看到監視器中計數器的值也跟著增加。
參考連結:.NET Framework 中的效能計數器(MSDN)