在实际编程中,有的时候需要密切注意CPU, Memory的变化。这个时候需要用到PerformanceCounter这个类,注意需要using System.Diagnostics;

这里只是在console上进行了一些测试,每一个CategoryName都有很多个CounterName。不需要对所有的CounterName都了解

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Diagnostics;
 using System.Threading;

 namespace ConsoleTest
 {
     class Program
     {
         public static void GetCategoryNameList()
         {
             PerformanceCounterCategory[] myCat2 = PerformanceCounterCategory.GetCategories();
             ; i < myCat2.Length; i++)
             {
                 Console.WriteLine(myCat2[i].CategoryName);
             }
         }
         public static void GetInstanceNameListANDCounterNameList(string CategoryName)
         {
             string[] instanceNames;
             List<PerformanceCounter> counters = new List<PerformanceCounter>();
             PerformanceCounterCategory mycat = new PerformanceCounterCategory(CategoryName);
             try
             {
                 instanceNames = mycat.GetInstanceNames();
                 )
                 {
                     counters.AddRange(mycat.GetCounters());
                 }
                 else
                 {
                     ; i < instanceNames.Length; i++)
                     {
                         counters.AddRange(mycat.GetCounters(instanceNames[i]));
                     }
                 }
                 ; i < instanceNames.Length; i++)
                 {
                     Console.WriteLine(instanceNames[i]);
                 }
                 Console.WriteLine("******************************");
                 foreach (PerformanceCounter counter in counters)
                 {
                     Console.WriteLine(counter.CounterName);
                 }
             }
             catch (Exception)
             {
                 Console.WriteLine("Unable to list the counters for this category");
             }
         }
         private static void PerformanceCounterFun(string CategoryName, string CounterName, string InstanceName)
         {
             PerformanceCounter pc = new PerformanceCounter(CategoryName, CounterName, InstanceName);
             while (true)
             {
                 Thread.Sleep(); // wait for 1 second
                 float Load = pc.NextValue();
                 Console.WriteLine(CounterName + ": " + Load);
             }
         }
         static void Main(string[] args)
         {
             //GetCategoryNameList();
             GetInstanceNameListANDCounterNameList("Memory");
             //PerformanceCounterFun("Processor", "% Processor Time", "_Total");
             //PerformanceCounterFun("Processor", "Working Set", "_Total");
             //PerformanceCounterFun("Memory", "% Committed Bytes In Use", "");
             PerformanceCounterFun("Memory", "Available MBytes", "");
         }
     }
 }

C#: PerformanceCounter的使用的更多相关文章

  1. 利用Windows性能计数器(PerformanceCounter)监控

    一.概述 性能监视,是Windows NT提供的一种系统功能.Windows NT一直以来总是集成了性能监视工具,它提供有关操作系统当前运行状况的信息,针对各种对象提供了数百个性能计数器.性能对象,就 ...

  2. PerformanceCounter蛋痛的设计

    在.NET下对进程的性能计数可以使用PerformanceCounter,通过该对象可以对进程的CPU,内存等信息进行统计.对于正常使用来说这个对象还是很方便,但对于同一名称的多个进程进行性能计数那真 ...

  3. C# 使用 PerformanceCounter 获取 CPU 和 硬盘的使用率

    C# 使用 PerformanceCounter 获取 CPU 和 硬盘的使用率: 先看界面: 建一个 Windows Form  桌面程序,代码如下: using System; using Sys ...

  4. 计算机系统监控 PerformanceCounter

    PerformanceCounter 컴퓨터 성능 머니터링 CUP Processor 메모리 하터웨어 DB (CPU,User Connection,Batch Request,Blocking ...

  5. C#透过PerformanceCounter取得特定Process的CPU使用率

  6. C# 利用性能计数器监控网络状态

    本例是利用C#中的性能计数器(PerformanceCounter)监控网络的状态.并能够直观的展现出来 涉及到的知识点: PerformanceCounter,表示 Windows NT 性能计数器 ...

  7. 使用PowerShell收集多台服务器的性能计数器

    写在前面     当管理多台Windows Server服务器时(无论是DB.AD.WEB以及其他的应用服务器),当出现性能或其他问题后,参阅性能计数器都是一个非常好的维度从而推测出问题可能出现的原因 ...

  8. C#获取CPU占用率、内存占用、磁盘占用、进程信息

    代码: using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading ...

  9. asp.net mvc4 简单的服务器监控开发之C#获取服务器CPU、RAM、TCP等系统信息(上)

    一.背景 前段时间服务器出了点问题,加上学业愈来愈紧张,写博文分享的时间越来越少.虽然不是第一次在博客园上写经验,但是近期分享的博文得到了不少的朋友支持和指正,在这里内心非常感激和开心.希望以后能认真 ...

随机推荐

  1. java ObjectOutputStream

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...

  2. ajax普通弹窗;Bootstrp弹窗

    1.普通弹窗 主页面: <head> <meta http-equiv="Content-Type" content="text/html; chars ...

  3. 基于ace后台管理系统模板--CMS(Thinkphp框架)的筹划

    临近春节,准备自己做一个关于宠物的cms网站,特写下此博客提醒自己,尽量争取在过年前做好.废号少说,先梳理下接下来准备使用的工具.. 由于最近在学习thinkphp,所以打算用这个框架来作为主体,可能 ...

  4. 自己写的一个DirectUI库,基础控件基本都已实现

    http://download.csdn.net/detail/pcradio/9254881 http://blog.csdn.net/pcradio

  5. C/C++ 排序&&查找算法(面试)

    一.排序 1.冒泡排序 void BubbleSort(int array[],int n) { ; ; ; ; ;i<n - ;i++) /*外循环控制排序的总趟数*/ { flag = ; ...

  6. android获取设备全部信息

    private static final String FILE_MEMORY = "/proc/meminfo"; private static final String FIL ...

  7. ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100)

    原文:ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100) 对于非地理专业的开发人员,对与这些生涩的概念,我们不一定都要了解,但是我们要理解,凡是 ...

  8. AX中四种库存ABC分析法原理研究

    库存ABC分类,简单的说就是抓大放小,是为了让我们抓住重点,用最大精力来管理最重要的物料,而对于不太重要的物料则可以用较少的精力进行管理.它和我们平常说的八二法则有异曲同工之妙. 既然要应用库存ABC ...

  9. JavaScript学习之cookies

    使用JavaScript操作cookies 一.什么是cookies? cookies是一种对客户端硬盘的数据进行存取的技术,这种技术能够让网站把少量的数据存储到客户端的硬盘,同时也能够从客户端的硬盘 ...

  10. angularJs之模块化

    <!DOCTYPE HTML><html ng-app="myApp"><head><meta http-equiv="Cont ...