Performance Monitor采集性能数据
Performance Monitor采集性能数据
Windows本身为我们提供了很多好用的性能分析工具,大家日常都使用过资源管理器,在里面能即时直观的看到CPU占用率、物理内存使用量等信息。此外新系统中还加入了一个资源监视器(下图2)能够提供更多更直观有关CPU、I/O、网络方面的性能信息统计与视图。
![]()
当然仅靠这些工具是不能满足性能分析需求的,从Windows NT4.0时代,Windows就为我们提供了一个叫做Performance Monitor的强有力的性能工具帮助我们分析系统负载找出性能瓶颈,在Windows 7中路径是%windir%\system32\perfmon.msc,您也可以在面板的管理工具中找到它。
下面我们一起来通过几个实验了解它的基本应用。
| a.在”监视工具”->”性能监视器”中添加自己需要的性能计数器,然后观察一段时间内的性能数据图表。 |
![]()
可以看到里面有极为丰富的计数器可供选择。选好后即可进行即时的数据监测。
| b.由当前性能监视设置生成一个htm文件,以后只需要打开这个html文件中即可直接查看此配置下即时的性能数据,操作同在控制台中一样。 |

| c.在程序中创建计数器、采集性能数据、操作计数器数据。 |
FCL中有名为System.Diagnostics的命名空间,里面提供了特定的类,使我们能够与系统进程、事件日志和性能计数器进行交互。PerformanceCounter 类使您能够监视系统性能,而 PerformanceCounterCategory 类则提供新建自定义计数器和类别的方式。
假如我们有名为“SopacoPerformanceCategory”的计数器类型,里面有CounterOne这个计数器,则可以使用诸如“PerformanceCounter counter = new PerformanceCounter("SopacoPerformanceCategory", "CounterOne", false);”的代码获得此计数器实例。PerformanceCounter有像IncrementBy这样原子操作方法,可以在并发情况下正确的修改数值。
下面的代码会在30秒内不断对CounterOne进行随机修改,可以通过性能监视器视图看到其变化。
internal class PerformanceShow_Demo
{
private static PerformanceCounter counter = new PerformanceCounter("SopacoPerformanceCategory", "CounterOne", false);
private static int n = 0;
private static System.Timers.Timer timer = new System.Timers.Timer(1000);
static void Main(string[] args)
{
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
counter.RawValue = 0;
timer.Enabled = true;
timer.Start();
Thread.Sleep(40000);
}
private static void timer_Elapsed(object sender, EventArgs e)
{
Console.WriteLine(e.ToString());
counter.IncrementBy(new Random().Next(-10, 20));
n++;
if(n > 30)
timer.Stop();
}
}
| d.使用数据收集器,开启自动监测并持久化监测数据 |
上面过程中我们一直是通过实时图标来分析性能数据,更多时候我们需要的是让统计工具自动运行在后台,并将数据记录到日志中。Performance Monitor为我们提供了这种便利。首先在“数据收集器集”->“用户定义”右键选择“新建->数据收集器集”(默认添加了NT Kernel和PerformanceCounter两个计数器)。然后在建好的数据收集器中添加、设置好所需的数据收集器(如图)。
![]()
这样我们就可以启动这个数据收集器集让他自动采集数据。当开始数据采集后你会发现左侧列表中在报告栏内会自动增加你这个数据集器集的报告,可以直接查看数据报告和报表或将报告导出到其他位置。
![]()
![]() |
网名: |
无疆_炎戎 |
|
实名: |
姜萌 |
|
| http://www.wjiangathpc.spaces.live.com/ | ||
| http://www.cnblogs.com/wJiang | ||
Performance Monitor采集性能数据的更多相关文章
- vs命令行采集性能数据
VSPerfASPNETCmd /output:d://PerformanceReport.vsp http://localhost/store/cart.aspx
- 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据
基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据 by:授客 QQ:1033553122 实现功能 测试环境 环境搭建 使用前提 使用方法 运行程序 效果展 ...
- 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机或Docker容器性能数据
基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据 by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 3 使用前提 3 使用方法 ...
- 使用 W3C Performance 对象通过 R 和 JavaScript 将浏览器内的性能数据可视化[转]
当考虑 Web 性能指标时,需要关注的目标数字应该是从您自己的用户那里获得的实际用户指标.最常见的方法是利用 Splunk 之类的工具来分析您的机器数据,该工具支持您分析和可视化您的访问权限和错误日志 ...
- iOS-监听原生H5性能数据window.performance
WebKit-WKWebView iOS8开始苹果推荐使用WKWebview作为H5开发的核心组件,以替代原有的UIWebView,以下是webkit基本介绍介绍: 介绍博客 Webkit H5 - ...
- Send email alert from Performance Monitor using PowerShell script (检测windows服务器的cpu 硬盘 服务等性能,发email的方法) -摘自网络
I have created an alert in Performance Monitor (Windows Server 2008 R2) that should be triggered whe ...
- .Net最佳实践3:使用性能计数器收集性能数据
本文值得阅读吗? 本文讨论我们如何使用性能计数器从应用程序收集数据.我们将先了解的基本知识,然后我们将看到一个简单的示例,我们将从中收集一些性能数据. 介绍: - 我的应用程序的性能是最好的,像火箭 ...
- Orion Network Performance Monitor 软件在网络管理中的应用
Orion Network Performance Monitor 软件在网络管理中的应用 Orion Network Performance Monitor是完全的带宽性能和故障管理软件 ...
- 使用performance进行网页性能监控
由于项目需要, 需要对网页的一些性能进行监控, 接触到了performance, window.performance 提供了一组精确的数据,经过简单的计算就能得出一些网页性能数据, 将这些数据存储为 ...
随机推荐
- fs学习笔记之输出格式
接触fs那么久,有必要再记录一下. 上一篇介绍了fs拓扑描写叙述文件dot的格式,今天要介绍fs输出文件的格式. 举个样例,下面是d节点输出文件的一行记录,也就是一条流经过d的记录. textexpo ...
- linux内核笔记-内核同步
linux内核就相当于不断对请求进行响应的服务器,这些请求可能来自CPU,可能来自发出中断的外部设备.我们将内核看作两种请求的侍者. (1)老板提出请求,侍者如果空闲,为老板服务.(系统调用或异常) ...
- uva :10123 - No Tipping(dfs + 几何力矩 )
option=com_onlinejudge&Itemid=8&page=show_problem&category=109&problem=1064&mosm ...
- ZOJ 1584:Sunny Cup 2003 - Preliminary Round(最小生成树&&prim)
Sunny Cup 2003 - Preliminary Round April 20th, 12:00 - 17:00 Problem E: QS Network In the planet w-5 ...
- hdu-4833-Best-Financing(DP)
Best Financing Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- Matlab spline
请记住,,平稳 早期project图时,把富有弹性的细长木条(所谓样条)用压铁固定在样点上,在其它地方让它自由弯曲,然后沿木条画下曲线. 成为样条曲线 三次样条插值(简称Spline插值)是通过一系列 ...
- WPF界面设计技巧(7)—模拟电梯升降的缓动动画
原文:WPF界面设计技巧(7)-模拟电梯升降的缓动动画 如同Flash一样,WPF的亮点之一也在于其擅于表现平滑的动画效果,但以移动动画来说,仅凭简单的起始位置.目标位置,所产生的动画仍会非常生硬,这 ...
- SWT的GridData一些参数的图示
1. 参数:verticalSpan GridData gridData=new GridData(); gridData.verticalSpan=100; final Text nameText= ...
- 解决set /p yn= 接受键盘输入导致ECHO 处于关闭状态的问题
今天写了一个自动更新程序的批处理脚本,但是有个变量一直赋值有问题.弄了一个下午终于找到原因及解决方法: ----转载要说明来自:博客园--邦邦酱好 哦 有问题的代码如下: @echo off echo ...
- Python学习入门基础教程(learning Python)--3.2 if-else分支语句
if-else分支语句结构的特点是当conditon条件满足时,执行if下的语句块,当condition条件不满足时执行else下的语句块,也就是说根据条件来控制让某些语句执行,某些语句不被执行. i ...
