一 PerformanceCounter 基本介绍
1 简单介绍
表示 Windows NT 性能计数器组件
命名空间:System.Diagnostics
程序集:System(在 system.dll 中)
2 构造函数(只介绍本文要用到的)
PerformanceCounter (String, String, String)
功能:
初始化 PerformanceCounter 类的新的只读实例,
并将其与本地计算机上指定的系统性能计数器或自定义性能计数器及类别实例关联
参数说明:
public PerformanceCounter (
 string categoryName,
 string counterName,
 string instanceName
)
categoryName
性能计数器关联的性能计数器类别(性能对象)的名称。
counterName
性能计数器的名称。
instanceName
性能计数器类别实例的名称,或者为空字符串 ("")(如果该类别包含单个实例)。
二 示例方法:
需要引用命名空间

using System.Diagnostics;
using System.Threading;
using System.Collections;

1 获取性能计数器类别列表
虽然系统中有很多可用的计数器类别,但与之交互最频繁的可能是“Cache”(缓存)、“Memory”(内存)、
“Objects”(对象)、“PhysicalDisk”(物理磁盘)、“Process”(进程)、“Processor”(处理器)、
“Server”(服务器)、“System”(系统)和“Thread”(线程)等类别

        public static void GetCategoryNameList()
        {
            PerformanceCounterCategory[] myCat2;
            myCat2 = PerformanceCounterCategory.GetCategories();
            for (int i = 0; i < myCat2.Length; i++)
            {
                Console.WriteLine(myCat2[i].CategoryName.ToString());
            }
        }

2 获取性能计数器类别下的实例的名称实例下的性能计数器的名称

        public static void GetInstanceNameListANDCounterNameList(string CategoryName)
        {
            string[] instanceNames;
            ArrayList counters = new ArrayList();
            PerformanceCounterCategory mycat = new PerformanceCounterCategory(CategoryName);
            try
            {
                instanceNames = mycat.GetInstanceNames();
                if (instanceNames.Length == 0)
                {
                    counters.AddRange(mycat.GetCounters());
                }
                else
                {
                    for (int i = 0; i < instanceNames.Length; i++)
                    {
                        counters.AddRange(mycat.GetCounters(instanceNames[i]));
                    }
                }
                for (int i = 0; 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");
            }
        }

3 根据categoryName,counterName,instanceName获得性能情况显示

        private static void PerformanceCounterFun(string CategoryName, string InstanceName, string CounterName)
        {
            PerformanceCounter pc = new PerformanceCounter(CategoryName, CounterName, InstanceName);
            while (true)
            {
                Thread.Sleep(1000); // wait for 1 second 
                float cpuLoad = pc.NextValue();
                Console.WriteLine("CPU load = " + cpuLoad + " %.");
            }
        }

4 调用方法3显示cpu使用率

PerformanceCounterFun("Processor", "_Total", "% Processor Time");

PerformanceCounter 基本介绍以及示例方法相关推荐

  1. PerformanceCounter 基本介绍

    文章转自:http://www.cnblogs.com/xh831213/archive/2008/06/12/1218234.html 一 PerformanceCounter 基本介绍 1 简单介 ...

  2. repeater控件 php,asp.net Repeater控件的说明及详细介绍及使用方法

    Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局.当该页运行时,Repeater 控件依次通过数据源中的记录为每个记录呈现一个项. 他很简单,用 ...

  3. 【Aegisub相关】VSCode插件:Aegisub Helper的安装、功能介绍及使用方法

    原作者插件的开源链接: https://github.com/DCTewi/Aegisub-Helper 附上横行写法文件的压缩包: Aegisub Helper 标准模板示例(含使用教程) 题外话: ...

  4. 蓝牙模块XY-MBD07A的介绍及使用方法(超详解)

    蓝牙模块XY-MBD07A的介绍及使用方法(超详解) 蓝牙XY-MBD07A是主从一体的蓝牙串口模块,简单的说,当蓝牙设备与蓝牙设备配对连接成功后,我们可以忽视蓝牙内部的通信协议,直接将将蓝牙当做串口 ...

  5. Java 观察者模式介绍及示例

    Java 观察者模式介绍及示例 一.观察者模式简介 1.1概念 观察者模式(Observer Pattern) : 观察者模式又名 发布/订阅模式,属于行为模式,定义了对象中一对多的依赖关系,让多个观 ...

  6. python中的内置函数getattr()介绍及示例

    python中的内置函数getattr()介绍及示例 其实getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以把一个类可能要调用的方法放在配置文件里 ...

  7. fanuc机器人四边形编程_FANUC机器人示教编程:原始路径恢复功能介绍与使用方法...

    概要 原始路径恢复功能,是在机器人运行过程中,程序动作由于某种原因被暂停的情况下,当机器人再次启动运行时首先恢复到暂停时位置的一种功能.比如,在暂停后通过手动运行方式使得机器人发生了移动,当再次启动机 ...

  8. 【Android UI设计与开发】第07期:底部菜单栏(二)Fragment的详细介绍和使用方法

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8995025 由于TabActivity在Android4.0以后已经被完全弃 ...

  9. 如何通过牛顿方法解决Logistic回归问题 By 机器之心2017年8月09日 16:30 本文介绍了牛顿方法(Newton's Method),以及如何用它来解决 logistic 回归。log

    如何通过牛顿方法解决Logistic回归问题 By 机器之心2017年8月09日 16:30 本文介绍了牛顿方法(Newton's Method),以及如何用它来解决 logistic 回归.logi ...

最新文章

  1. 科普丨机器学习和人类学习的区别到底是什么?
  2. 报告 | 2018中国区块链行业分析报告
  3. Windows azure国际版下通过 windows auzre powershell为VM分配绑定virtual ip address
  4. JSP的3大指令Page,include,taglib
  5. Objective-C开发编码规范
  6. python 2 类与对象
  7. mysql 需要什么硬件配置_如何来给指定的硬件环境配置一份比较合理的MySQL配置文件-爱可生...
  8. Regal灰度发布智能分组引擎
  9. Spring Boot学习笔记:Spring Boot的Web功能
  10. 如何做一个国产数据库(三)
  11. linux 如何起服务,如何修改Linux的服务的开启和关闭
  12. Mac电脑:调整 VMware中Windows10 屏幕分辨率(解决win10与Mac界面切换后,分辨率改变问题)
  13. Linux定时任务-定时锁屏
  14. R语言|使用RGL包构建3D 图形(一)
  15. php微信获取openid_PHP微信网页授权获取OPENID
  16. iOS APP转让条件
  17. 12864液晶8x16ascii点阵_【单片机自学】7.液晶实验
  18. 使用Python来操作邮箱
  19. 适合讲给女朋友听的极品笑话
  20. flash as3.0粒子效果实例教程

热门文章

  1. 谷歌浏览器不填充密码问题
  2. Nginx 编译安装:
  3. 祈使句Simple Imperatives
  4. git 拉取远程分支到本地(两种方法)
  5. vue中的请求拦截器与响应拦截器的使用
  6. 【设计模式】——六芒星
  7. 人工智能实战_第三次作业_杨佳宁
  8. C语言高级编程:字符串赋值的几种方式
  9. 如何判断本地(路由器)分配的IP是否公网IP?
  10. 深度学习笔记-硬件选型