Vistaの起動を最適化してみた
せっかくVista搭載の実機を買ったのだし、Windows Performance Analyzerを使って起動を最適化してみた。細かい手順は以前の記事のとおり。速くなったんじゃないかな、たぶん。
以下の画像は最適化前後のディスク使用率。記録時間全体から見て特徴的なのは、140sec-200secの間のディスクIOが激減していること。
この期間のIOの内訳を見ると、svchost.exeのIOが減少していて、readが2/3、writeが1/3の時間で完了していた。$Mftに対するread時間が1/5(これだけで実に7秒減!)になるなど、最適化前に時間のかかっていた上位4項目($Mft / \Windows\Prefetch\NTOSBOOT-~~~.pf / \Windows\Prefetch\ReadyBoost\Trace1.fx / \Windows\System32\DriverStore\FileRepository へのアクセス)が根こそぎ短縮、ないしは無くなる(!)などの変化があった。
これはファイルの断片化云々ではなくて、そもそも読み込むべきファイルが減っている(Prefetch系がなくなった)ので、断片化の影響を受けにくいSSDでも短縮効果がある最適化なんじゃないかと思う。
あと、数値として判るように、エクスプローラの開始等ユーザーログオンに関する処理を行うuserinit.exeの開始と終了の時間を比較した。単位は秒で、OS起動からの経過時間で書いている。
項目 | 開始 | 終了 | 期間 |
---|---|---|---|
before | 51.3 | 86.1 | 34.8 |
after | 47.4 | 64.5 | 17.1 |
開始も速くなっているが活動時間そのものが圧倒的に短い。これはuserinit.exeの処理が最適化されたわけではなくて、最適化前は他のプロセスの活動とかぶっていて、ディスクビジーの時間帯に完璧に含まれてしまっていたことが理由のようだ。上の画像を参照しつつ、活動時間を照らし合わせると判る。
やっぱりボトルネックがIOなわけで、このあたりからがっつり分析しようかなと思ったが、来週(てか明日から)仕事で同じようなことをしないといけないのでやめた。