丰富的采集神器(一个叫做Performance的性能分析工具(c)(组图))
优采云 发布时间: 2022-03-05 18:19丰富的采集神器(一个叫做Performance的性能分析工具(c)(组图))
Windows 本身为我们提供了很多有用的性能分析工具。每个人每天都在使用资源管理器。在其中,您可以即时直观地查看 CPU 使用率和物理内存使用率等信息。此外,新系统还增加了资源监视器(下图2)可以提供越来越直观的性能统计和与CPU、I/O、网络相关的视图。
当然,仅靠这些工具并不能满足性能分析的需要。从Windows NT4.0时*敏*感*词*始,Windows就为我们提供了一个强大的性能工具——Performance Monitor,帮助我们分析系统负载,发现性能瓶颈。在 Windows 7 中,路径是 %windir%\system32\perfmon.msc,您也可以在面板的管理工具中找到它。
我们通过几个实验来看看它的基本应用。
一种。在“监控工具”->“性能监视器”中添加你需要的性能计数器,然后观察一段时间内的性能数据图表。
可见,可供选择的专柜是极其丰富的。选择后可以进行实时数据监控。
湾。从当前性能监控设置生成一个 htm 文件。以后只需要打开html文件就可以直接查看此配置下的实时性能数据。操作与控制台相同。
C。在程序中创建计数器、采集 性能数据和操作计数器数据。
FCL 中有一个名为 System.Diagnostics 的命名空间,它提供了允许我们与系统进程、事件日志和性能计数器交互的特定类。PerformanceCounter 类使您能够监视系统性能,而 PerformanceCounterCategory 类提供了一种创建新的自定义计数器和类别的方法。
假设我们有一个名为“SopacoPerformanceCategory”的计数器类型,其中收录 CounterOne,那么我们可以使用类似“PerformanceCounter counter = new PerformanceCounter("SopacoPerformanceCategory", "CounterOne", false);" 的代码 获取此计数器的实例。PerformanceCounter 有 IncrementBy 等原子操作方法,可以在并发的情况下正确修改值。
下面的代码连续30秒对CounterOne进行随机修改,可以通过Performance Monitor视图看到。
内部类 PerformanceShow_Demo
{
私有静态 PerformanceCounter 计数器 = new PerformanceCounter("SopacoPerformanceCategory", "CounterOne", false);
私有静态int n = 0;
私有静态 System.Timers.Timer timer = new System.Timers.Timer(1000);
静态无效主要(字符串 [] 参数)
{
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
计数器.RawValue = 0;
timer.Enabled = true;
计时器.Start();
线程.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)
计时器.停止();
}
}
d。使用数据采集器启用自动监控和持久监控数据
在上述过程中,我们一直在通过实时图标分析性能数据。更多的时候,我们需要的是让统计工具在后台自动运行,并将数据记录在日志中。性能监视器为我们提供了这种便利。首先,右键“Data Collector Set”->“User Defined”,选择“New -> Data Collector Set”(默认添加NT Kernel和PerformanceCounter这两个计数器)。然后在构建的数据采集器中添加并设置所需的数据采集器(如图)。
这样我们就可以启动这个数据采集器集来自动采集data。当你启动data采集时,你会发现你的dataset的report会自动添加到左侧列表的report栏目中。您可以直接查看数据报告并报告或将报告导出到其他位置。