使用性能计数器监控应用程序

监控应用程序的性能的一个很好的办法就是使用Performance Counter。Windows提供了系统工具来显示PerformanceCounter收集的数据,在运行对话框中输入perfmon,就可以调出该工具来显示PerformanceCounter收集的数据。如果在工具中添加一个Performance Counter,就会发现,每一个Performance Counter都会属于一个目录,以便于组织Performance Counter。每一个目录下都有许多个Performance Counter,每一个Performance Counter又会有很多实例,例如:在Process目录下,有很多Performance Counter,其中一个是%ProcessTime,表示CPU占用时间的Performance Counter,选择此Performance Counter,又会看到很多实例,每个实例的名字就是进程的名字,选择一个实例,就可以看到指定进程占用CPU时间的Performance Counter数据。有时候你会发现选择一个Performance Counter后并没有与之相关的任何实例,这表示该Performance Counter只能有一个实例。
在.Net中读取和写入PerformanceCounter数据都非常简单。在操作PerformanceCounter数据之前,首先要创建PerformanceCounterCategory,这只是对PerformanceCounter的一个简单分类,以便于查看PerformanceCounter数据。由于目录不能重复创建,所以需要在创建之前检测目录是否存在,如果存在可以继续使用,也可以对其进行删除,然后再创建它。对目录的删除和创建都需要管理员权限,所以,假如运行应用程序的账户不是管理员,操作目录就会抛出异常。所以应该在安装的时候创建目录,运行的时候只需要读取目录信息就可以了。
string categoryName = "My Service";
if (PerformanceCounterCategory.Exists(categoryName))
{
PerformanceCounterCategory.Delete(categoryName);
}
上面的代码展示了如何检测和删除目录。
对于创建目录,我们需要指定如下信息:
• 目录名
• 帮助描述,用于帮助用户了解此目录的用途
• 目录类型,目录类型是一个枚举类型,具有如下定义:
public enum PerformanceCounterCategoryType
{
Unknown = -1,
SingleInstance = 0,
MultiInstance = 1,
}
SingleInstance表示目录内部的PerformanceCounter只能有一个实例。MultiInstance表示目录内部的PerformanceCounter可以有多个实例,如果指定了SingleInstance,则在创建PerformanceCounter实例的时候,不需要指定InstanceName属性,否则会抛出异常。按照我的理解,此属性更应该属于CounterCreationData类。此类用于设置PerformanceCounter相关属性。
• 一个CounterCreationDataCollection的实例
此集合对象包含了创建Perfor
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值