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 提供了一组精确的数据,经过简单的计算就能得出一些网页性能数据, 将这些数据存储为 ...
随机推荐
- 最佳新秀SSH(十三)——Spring集装箱IOC分析和简单的实现
时间最近一段时期,"集装箱"这个词一直萦绕在我的耳边,连吃饭.睡在我的脑海里蹦来蹦去的. 由于这几天的交流时间.讨论,对于理解容器逐渐加深. 理论上的东西终归要落实到实践,今天就借 ...
- oracle 之 内存—鞭辟近里(四)
oracle 之 内存—鞭辟近里(四) 今天是2013-07-11日,首先我非常感谢我的哥们也是我的网友杨工,非常感谢他能在大数据库内帮我执行一下我所需要的信息.就是他说的网络真是一个互助友爱的平台. ...
- hdu4405(概率dp)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4405 题意:跳棋有0~n个格子,每个格子X可以摇一次色子,色子有六面p(1=<p<=6), ...
- Python 收集Twitter时间序列数据
CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-18 @author: guaguastd @name: c ...
- 逆向 Framework.jar
Ref:http://www.addictivetips.com/mobile/what-is-odex-and-deodex-in-android-complete-guide/ Ref:http: ...
- net平台下连接池
http://www.cnblogs.com/visionwang/archive/2012/11/16/2774203.html net平台下连接池概述 ADO.NET已经为我们提供这样的连接池管理 ...
- Service组件 总结 + 绑定理Service三种实现方式 Messager + Binder + AIDL
在Android中进程按优先级可以分为五类,优先级从高到低排列: - 前台进程 该进程包含正在与用户进行交互的界面组件,比如一个Activity - 可视进程 该进程中的组件虽然没有和用户交互,但是仍 ...
- 图像库---Image Datasets---OpenSift源代码---openSurf源代码
1.Computer Vision Datasets on the web http://www.cvpapers.com/datasets.html 2.Dataset Reference http ...
- javaEE jdbc编程步骤
1.载入数据库驱动(jar文件) //须要下载一个数据库的jar包,并导入对应的JDBC项目中,创建路径! Class.forName("com.mysql.jdbc.Driver" ...
- Java中动态代理技术生成的类与原始类的区别 (转)
用动态代理的时候,对它新生成的类长什么样子感到好奇.有幸通过一些资料消除了心里的疑惑. 平时工作使用的Spring框架里面有一个AOP(面向切面)的机制,只知道它是把类重新生成了一遍,在切面上加上了后 ...
