C#——性能计数器
2017-05-23 15:57
197 查看
简要Windows性能监视器:
打开Windows性能监视器的步骤如下:开始→运行→perfmon→确定
在这里我们可以选择添加我们要监控的计数器,比如:cpu使用率、内存使用量等,作为asp.net攻城师我们还可以使用它来监控我们站点的请求队列、应道队列数量、请求总数等。比如我们要开可用内存的信息:
可用内存大小事实数据如下:
瞬间感觉到在微软怀抱下的孩纸好幸福有木有。好啦接下来我们来看看C#是如何调用它的,并且是如何自定义自己的计数器的呢?
C#如何调用本地主机Windows性能监视器获取数据
上代码:
代码很简单,最主要的就是一个PerformanceCounter类的实例cpu,PerformanceCounter类有5个构造函数重载,就代码中的构造函数讲述,构造函数为new PerformanceCounter(“计数器类型名称”,“计数器名称”,“计数器实例名称”),(如果该计数器为单实例,那么计数器实例名称可为“”)。可使用实例的NextValue()方法获取当前值。
呵呵,当你看到代码时会说“如此 so easy”,但你可能对“计数器类型名称”,“计数器名称”,“计数器实例名称”这三个名称有点糊涂啦吧,别着急,先看一张图:
对这张图不陌生吧,没错,添加可用内存计数器时见过,那么“1”就是“计数器类型名称”,“2”就是“计数器名称”,“3”就是“计数器实例名称”(应为该计数器是单实例的,所以“3”下面没有具体的实例),所以三者的关系我们可以归纳为:计数器类型》计数器》计数器实例。赶紧试一下吧小伙伴们。。。
C#如何调用远程主机Windows性能监视器获取数据
上代码
C#如何自定义计数器
前面我们学习如何使用C#调用Windows性能监视器,来获取系统的各个计数器实时数据,那么我们可不可以自己定义一个计数器,并且添加到性能监视器中供我们实时查看呢?答案是肯定的。试想一下我们在日常开发当中会有类似这样的需求:我们有一个队列(可能是各种命令啊或者是消息啊、订单啊等等),那么我们想有一个可视化的东西来监控一下这个队列中积压了多少内容,当然啦我们万能的攻城师们肯定希望积压数量永远是0啦,哈哈,此时我们就可以为我们的队列设计一个计数器,那么我们就可以在Windows性能监视器中找到并且实时查看队列积压情况啦。(开始动手吧)
先上代码:
(代码就语无伦次吧,神马都不讲究啦)
我们队列的实时数据如下:
这个代码可以检测msmq里消息的数量:
using System.Diagnostics; PerformanceCounter objCounter = new PerformanceCounter("MSMQ Queue", "Messages in Queue", @"mymachine\private$\MyQueue"); int count = (int)(objCounter.NextValue());
相关文章推荐
- Windows性能计数器相关基础(一)
- 使用CPU计数器监视SQL Server性能的一点提示
- CodeTimer 代码性能计数器
- 安装Ms SQL Server 2005 开发版时出现性能计数器要求安装错误的解决办法
- 安装SQL Server2005遇到的性能监视器计数器要求错误的解决方法
- .NET 性能测试工具 -- 性能计数器
- 学习中总结Windows常见性能计数器
- 利用Windows性能计数器分析软件产品的性能瓶颈
- windows 系统中三个关键性能计数器
- 安装sql server 2005 遇到问题性能监视器计数器要求解决方案
- SQL Server 2008 R2 性能计数器详细列表(四)
- 关于安装SQL2008提示“性能计数器注册表配置单元一致性”
- Windows 2008 r2 安装SQL Server 2008 性能计数器注册表配置单元一致性
- 一个简单的性能计数器:CodeTimer
- 利用windows性能计数器进行服务器性能监控示例分享
- vc下使用windows的性能计数器简介
- 【整理】安装Sql Server 2005出现“性能监视器计数器要求”错误解决方法
- 4.0十九章 检测----性能计数器
- Windows 性能监视器的计数器及阈值应用[转]
- 打开性能监视器出现“不能添加这些计数器”的解决方法