使用xperf收集并使用Windows Performance Analyzer查看Windows性能信息

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qwertyupoiuytr/article/details/78804390
首先需要安装Windows Performance Toolkit,然后使用其中的xperf工具进行信息收集,下载地址:
https://www.microsoft.com/zh-CN/download/details.aspx?id=39982

下载之后我们安装的时候只选择Windows Performance Toolkit就好了:

安装完成后,我们打开一个cmd窗口,使用下面的命令开始收集系统性能信息:
xperf -on DiagEasy

然后我们等一段时间,使用下面的命令停止收集并将收集到的信息保存到etl文件中:
xperf -d test.etl

我们可以看到生成了一个etl文件:


双击默认就可以使用Windows Performance Analyzer对这个etl文件进行分析,打开之后可以看到下面几个默认的项目,Activity,Computation,Storage,Memory:


展开每个项目,可以看到更细一层的信息:


对于展开的项,我们双击可以进一步查看这一项的详细信息,例如我们查看CPU Usage (Precise)的详细信息:


上面我们选择了EXCEL.EXE这个进程来作为一个查看的示例,左上角展开Excel进程之后,会列出Excel进程所有的线程。我们选择其中一个线程展开,可以看到这个线程的CPU使用率。
注意到截图中下半部分CPU这一列是空的,原因是线程在整个生命周期内如果被切换到不同的CPU上执行的话,这一列就会留空,展开线程这一项之后,才能看到线程在每个CPU上面的占用情况(我们这台机器是4核的机器,所以可以看到0/1/2/3这4个CPU)。

如果我们希望看到某一个进程或者线程的单独的情况,比如我们想把上面的CPU的曲线过滤出来,查看进程CPU占用情况,只需要找到这个进程,右键选择“Filter to Selection”:


这样就能把这个进程/线程的信息过滤出来了:

(在图中下边可以看到时间轴上蓝色的部分显示了选中的线程在整个进程生命周期中的活动时间)

我们再看看磁盘利用情况:
在上面选择Activity by IO Type, Process,这样会根据IO的类型(Read/Write/Flush)来进行分类,并通过Process进行归类:

选择后可以进一步设置要显示那些column:


可以看到非常详细的磁盘使用率,包括线程的使用率等等。

接着在看一下Memory的使用情况,我们按照Process和File Name来查看:


这里面我们可以看到每个进程调用的文件进行内存交换的细节。(间接可以了解到进程都使用了那些文件哈哈)

上面也只是一些基本的用法和查看方法,关于xperf更多的命令以及Windows Performance Analyzer的更深入的用法,大家还是可以Google一下~~

参考链接:
https://blogs.msdn.microsoft.com/ntdebugging/2008/04/03/windows-performance-toolkit-xperf/
https://blogs.msdn.microsoft.com/arvindsh/2012/09/07/windows-performance-toolkit-finding-cpu-consumer/
https://randomascii.wordpress.com/2012/05/08/the-lost-xperf-documentationcpu-sampling/
https://randomascii.wordpress.com/2012/05/11/the-lost-xperf-documentationcpu-scheduling/

猜你喜欢

转载自blog.csdn.net/qwertyupoiuytr/article/details/78804390