在Asp.Net中使用自訂效能計數器

來源:互聯網
上載者:User

效能計數器的作用

可以跟蹤應用程式的資源使用、運行效率、負載和效能瓶頸等情況。

添加自訂效能計數器

方法一:通過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)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.