当前位置: 首页 > article >正文

C#中遍历所有的性能计数器PerformanceCounter

C#中遍历所有的性能计数器PerformanceCounter

 

在C#中性能计数器对应的类型为PerformanceCounter,在使用该类型的时候,需要知道该计数器的CategoryName和CounterName,对于常用的Processor,Network之类的,还能有不少参考资料供参考查询。如果是一个陌生点的计数器,光是查找计数器的CategoryName,CounterName和InstanceName就是个麻烦事。

下面给出一种遍历本机上所有计数器信息的方法。

            PerformanceCounterCategory[] pcc = PerformanceCounterCategory.GetCategories();
StringBuilder sb = new StringBuilder();
string cn = null;
for (int i = 0; i < pcc.Length; i++)
{
cn = pcc[i].CategoryName.ToUpper();
//if (cn.IndexOf("PROCESSOR") != -1)
{
sb.Remove(0, sb.Length);
sb.Append("CategoryName:" + pcc[i].CategoryName + "\r\n");
sb.Append("MachineName:" + pcc[i].MachineName + "\r\n");
string[] instanceNames = pcc[i].GetInstanceNames();
for (int j = 0; j < instanceNames.Length; j++)
{
sb.Append("**** Instance Name **********\r\n");
sb.Append("InstanceName:" + instanceNames[j] + "\r\n");
try
{
PerformanceCounter[] counters = pcc[i].GetCounters(instanceNames[j]);
for (int k = 0; k < counters.Length; k++)
{
sb.Append("CounterName:" + counters[k].CounterName + "\r\n");
}
}
catch (Exception)
{ }
sb.Append("**************************************************\r\n");
}
Trace.TraceInformation(sb.ToString());
}
} 


 

另外,使用该类型获取某个计数器的值也是很简单的,只需要指定类别,实例名,计数器名

PerformanceCounter pc1 = new PerformanceCounter("Processor","% Processor Time","_Total"); //参数分别为:类别名,计数器名,实例名

 

然后通过pc1.NextValue() 获得相关计数器的值就可以了

 

 

 

http://www.lryc.cn/news/2414184.html

相关文章:

  • 中国大陆网站TOP100
  • 云的基本概念(公有云、私有云、 IaaS、PaaS、SaaS)
  • Dubbo 入门理论学习
  • Google的人体浏览器
  • Matlab的regionprops详解 连通区域
  • UCloud成首个通过乌云认证的云计算平台
  • linux修改index属性,selectedIndex 属性
  • 转贴:网友line写的火鸟字幕合并器教程
  • for的几种用法
  • MATLAB plotyy总结
  • 纳什均衡和帕累托最优
  • 计算机编程术语总结
  • 深入浅出WPF(一)
  • Cocoa 框架
  • windows C++多线程(三):线程终止结束ExitThread与TerminateThread
  • 关于delphi软件运行出现Invalid floating point operation的错误的解决办法
  • 运维自动化概述
  • Unity3D AVProVideo开始播放跟播放完成
  • 一个坑
  • 驻极体麦克风简介
  • window.history.go(-1)和window.location.go(-1)区别
  • 【毕业设计源码】PHP网上商城管理系统
  • VC6.0下载和安装教程
  • 半导体制冷片-热电效应简介
  • 【Oracle】常用Oracle基础知识
  • 创建DPlink
  • 解决rhythmbox听歌问题
  • input中常用的type属性与使用场景
  • xnio java_使用Cargo Java API和Jenkins部署到Wildfly时出现“XNIO001001:没有找到XNIO提供程序”错误...
  • 猪猪猫.CN-WINXPSP2电脑城装机03CD标准版