Performance Counter的使用
原文地址:http://blog.csdn.net/jiangxinyu/article/details/5480401
一 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.Threading;
using System.Collections;
1 获取性能计数器类别列表
虽然系统中有很多可用的计数器类别,但与之交互最频繁的可能是“Cache”(缓存)、“Memory”(内存)、
“Objects”(对象)
、“PhysicalDisk”(物理磁盘)、“Process”(进程)、“Processor”(处理器)、
“Server”(服务器)、“System”(系统)和“Thread”(线程)等类别
{
PerformanceCounterCategory[] myCat2;
myCat2 = PerformanceCounterCategory.GetCategories();
for (int i = 0; i < myCat2.Length; i++)
{
Console.WriteLine(myCat2[i].CategoryName.ToString());
}
}
2 获取性能计数器类别下的实例的名称实例下的性能计数器的名称
{
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获得性能情况显示
{
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使用率
Performance Counter的使用
客户端性能测试通过performanceCounter监控客户端性能指标
PerformanceCounter PTCounter = new PerformanceCounter("Process",
"% Processor Time",
"AliIM");
logfile("% Processor Time:" + PTCounter.NextValue().ToString());
//内存
PerformanceCounter WSCounter = new PerformanceCounter("Process",
"Working Set",
"AliIM");
logfile("Working Set:" + ((double)WSCounter.NextValue() / 1024).ToString());
//内存最高值
PerformanceCounter MemeryCounter = new PerformanceCounter("Process",
"Working Set Peak",
"AliIM");
logfile("Working Set Peak:" + ((double)MemeryCounter.NextValue() / 1024).ToString());
//虚拟内存
PerformanceCounter PBCounter = new PerformanceCounter("Process",
"Private Bytes",
"AliIM");
logfile("Private Bytes:" + ((double)PBCounter.NextValue() / 1024).ToString());
//句柄数
PerformanceCounter HCCounter = new PerformanceCounter("Process",
Performance Counter的使用的更多相关文章
- Performance Counter的使用——获取各类组件性能,获取CPU参数等
一 PerformanceCounter 基本介绍1 简单介绍表示 Windows NT 性能计数器组件 命名空间:System.Diagnostics程序集:System(在 system.dll ...
- 消息队列数量统计(MSMQ,Performance Counter)
微软消息队列服务MSMQ (Microsoft Message Queue),工作在在线或者离线场景,并提供异步编程功能.互联网和企业开发很多场景应用,例如电商的订单处理流程,这是因为客户端不需要等待 ...
- 转贴---Performance Counter(包含最全的Windows计数器解释)
http://support.smartbear.com/viewarticle/55773/ 这个Article中介绍了一个新工具,TestComplete,把其中涉及到性能计数器的部分摘抄出来了. ...
- 利用Zabbix来监控Windows Performance Counter
Windows的性能计数器提供了很多系统的性能指标度量,通过Windows的性能计数器,我们可以对Windows的服务器的当前运行状态有个即时的情况了解. Zabbix Agent支持(Win) pe ...
- performance Counter
Logman https://technet.microsoft.com/en-us/library/bb490956.aspx http://blogs.technet.com/b/askperf/ ...
- c++ 更新 performance counter 数据,错误码 87
ERROR_INVALID_PARAMETER 87 (0x57) The parameter is incorrect. 很可能是该送 ULONG 的送了 ULONGLONG,vise versa
- Performance Monitor2:Peformance Counter
Performance Counter 是量化系统状态或活动的一个数值,Windows Performance Monitor在一定时间间隔内(默认的取样间隔是15s)获取Performance Co ...
- Performance Monitor4:监控SQL Server的IO性能
SQL Server的IO性能受到物理Disk的IO延迟和SQL Server内部执行的IO操作的影响.在监控Disk性能时,最主要的度量值(metric)是IO延迟,IO延迟是指从Applicati ...
- Performance Monitor1:开始性能监控
Performance Monitor是Windows内置的一个可视化监控工具,能够在OS级别上实时记录系统资源的使用情况,通过收集和存储日志数据,在SQL Server发生异常时,能够还原系统当时的 ...
随机推荐
- 解决Windows+Eclipse+Python错误: SyntaxError: Non-ASCII character
这个问题出现的原因是在文中使用了中文或者其他的非英文字符 最简单的解决办法: 在文件的第一行加上编码表示,切记:一定要是第一行,而且在前面没有任何对文件和项目的注释. 也就是说在Windows Ecl ...
- OpenJudge 2749 分解因数
1.链接地址: http://bailian.openjudge.cn/practice/2749/ 2.题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 给出一个正整数a,要求分 ...
- ASP.Net大文件上传组件详解
首先右键单击网站根目录,在弹出的快捷菜单中,选择"添加引用"菜单项,弹出"添加引用",切换到"浏览"找到组件的Dll文件"Best ...
- ubuntu svn安装测试
本机环境 :ubuntu 12.4 LTS desktop 1 sudo apt-get install subversion #安装svn 2 sudo mkdir /home/lzj/s ...
- 自己动手丰衣足食,h5手机端jquery弹窗插件(事件冒泡、单例模式、遮盖部分禁止默认滚动)
感谢浏览,欢迎交流=.= 公司开发微信网页多处需要使用弹窗,使用jquery-ui的定制化下载仍需要150多kb,想来有些奢侈(最终下来只有11kb,压缩后2kb,啊,我的神), 手机端弹窗方式与pc ...
- 深入了解relative
1.relative是自身定位,距原本位置的偏移 2.无侵入布局: 挪动位置,原本位置还在占据,并不会影响其他元素的布局 应用: 实现鼠标拖拽,比自身api好用 3.top/bottom 和 le ...
- setInterval和setTimeout定时器
1,文本框自增(重零开始)每隔一秒递增1 <input type="text" name="name" value="0" id=&q ...
- 获取DOM的真实节点
<script type="text/babel"> var Myelement=React.createClass({ handleClick:function(){ ...
- shell脚本修复MySQL主从同步
发布:thebaby 来源:net [大 中 小] 分享一例shell脚本,用于修改mysql的主从同步问题,有需要的朋友参考下吧. 一个可以修改mysql主从同步的shell脚本. 例子 ...
- PHP框架原理
本文主要来聊聊框架理论,但不针对任何一款框架,不过任何一款框架都离不开这个理论,首先我们了解下框架的来龙去脉,任何技术的出现都是为了解决某个问题,之前的博客有讲过smarty,其存在就是为了html和 ...