笔记本上的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 会自动重启系统,然后开始收集相关的启动信息数据。重启完成以后,xbootmgr 会等待 explorer 全部启动完成以后,生成一个日志文件(扩展名是:etl)到xperf安装目录下面。下面我们需要对这个文件进行分析。
分析的过程有很多方法,最简单的方法就是进入命令行模式,切换到xperf安装目录下,输入:
命令自动分析,然后输出一个 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 秒这个时间段:
|