当前位置: 电脑软硬件应用网 > 电脑学院 > 操作系统 > Vista系统 > 正文
[组图]Vista性能分析:使用xperf获取启动性能数据 【字体:
Vista性能分析:使用xperf获取启动性能数据
2009-6-19 19:15:43  文/Smallfro…   出处:赛迪网   
笔记本上的Vista系统启动速度越来越慢了,启动时候的滚动条需要滚数十圈才能完成,而到Explorer显示完桌面,系统启动全部完成,需要4分多钟,你是否已经不可忍受了。本想重装系统,但是重装的代价也太大了,需要重新配置太多东西,于是乎就想如果找到启动性能的关键瓶颈,对这个瓶颈进行优化以后应该能够解决一些问题。

要解决问题,就需要准确的收集相关的性能信息,我们知道,在Windows XP时代,可以使用 Bootvis 工具收集相关的信息。

Bootvis:一个专门用于收集和分析Windows XP启动速度的工具。曾经很不幸的被错误的认为是XP的启动速度优化工具。

但是由于 Windows Vista 内核体系的变革,加上全新的引导模式的引入,BootVis 肯定是不能胜任的,看来需要找到一个更好的获取 Windows Vista 相关性能数据的办法了。

Microsoft Windows Performance Toolkit(简称xperf)是微软最近一段时间内推荐的丈量Windows性能的一个全新的工具,适合于Windows Vista或更高版本。最新版本是4.1.1.1。

可以在这里免费下载。

安装xperf的过程非常的简单,安装完成以后,就需要开始收集相关的性能数据了。本次我关注的是 Windows Vista 的启动速度,因此我需要收集的是Boot阶段的数据。

用管理员模式启动cmd.exe,然后进入xperf安装目录,输入下面的命令:

xbootmgr.exe -trace boot

输入这个命令以后,xbootmgr 会自动重启系统,然后开始收集相关的启动信息数据。重启完成以后,xbootmgr 会等待 explorer 全部启动完成以后,生成一个日志文件(扩展名是:etl)到xperf安装目录下面。下面我们需要对这个文件进行分析。

分析的过程有很多方法,最简单的方法就是进入命令行模式,切换到xperf安装目录下,输入:

xperf -i boot_BASE+CSWITCH_1.etl -o boot.xml -a boot

命令自动分析,然后输出一个 xml 的报告文件。

下面我要说的是一个更细致的分析过程。

1.打开 etl 文件:使用 xperfview boot_BASE+CSWITCH_1.etl 命令,会调用 xperfview 工具对 etl 文件进行详细的解析。etl 文件是xperf原始的性能数据文件,里面记录了所有收集到的数据。

2.xperfview 解析完成以后,会看到类似于下方的图片:

找到 process lifetimes 分类(如上图),会发现到50多秒的时候,系统里面的第一个用户态进程smss.exe才启动(进程ID:748),之前的时间都花费在 system 上。换句话说,运行在内核态的各种驱动程序,包括 Windows 内核和执行体用了 50 多秒才完成启动子系统之前的初始化动作,这个时间花费的也太长了。

3.由于初始化 Windows 内核和执行体等动作用了 50 多秒,这个非常的不正常,因为我们需要看看在这50秒内的详情。

在 Disk Utilization by process 里面,选择 0-50 秒这个时间段:

[NextPage]

4.然后点击鼠标右键,选择 Detail Graph,会出现下面的图:

在这个图片里面,可以看在 0-50 秒内磁盘访问最高的区域是什么,C盘中间部分的访问频度非常的高。更细致的数值分析就需要使用另外一张报表了。

5.在 Disk Utilization by process 里面,还是选择 0-50 秒这个时间段:点击鼠标右键,选择 Summary Table,xprefview 会显示如下图所示的报告,这个报告对于分析性能分析来说,会显得会更为直观一点。
 
 
这张图标给了我们一个非常详细的性能分析和解释数据。在 0-50 秒时间内,system 进程花费了 42445587.434 us 的时间,其中,花费最多的时间是在处理 MFT 表的时候,尽然用了近10秒的时间。
 
6.根据上面的数据,我们已经找到了在启动最开始的50秒时间内,有10秒钟的时间花费在了出来MFT表上面,另外,读取一些字体文件的时间也非常的慢。
 
7.知道数值以后,后面就是优化过程了。根据 xperf 给出的数据初步判断:开机慢的原因和文件IO速度变慢是相关的。有人会问,而影响文件IO速度慢的原因有很多,但是请注意一点,在前50秒内,由于没有任何的用户态进程介入,因此IO速度慢的原因就很简单了,大部分原因是因为磁盘碎片导致的,也有可能是由于硬盘坏道导致的。根据 xperf 的数据,处理MFT表用了10秒钟时间,如果能够把MFT的处理时间加快,同时减小碎片数量,系统的启动速度就能加快不少了。
  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    Windows7/XP/Vista局域网共享驱动器
    Vista下通过蓝牙手机控制计算机
    Vista使用4GB以上内存不稳定的解决办…
    系统备份与恢复:双系统xp与vista
    Vista系统隐藏文件的清理方法
    Vista下老ATI芯片显卡装新ATI驱动
    解决Vista中传真机故障的方法
    Windows 7和Vista安全方面的本质区别
    Vista下无法登录支付宝怎么办
    Vista降级到XP后花屏是电源设置搞鬼
    设为首页- 关于我们 - 联系方式 - 版权声明 - 友情链接 - 网站地图 -
    Copyright©2003-2010 45IT.COM All Rights Reserved. 浙ICP备05056851号