Visual Studio .NET の起動が遅い原因

Visual Studio .NET 2003」を日常的に使っている。
システムを再インストールした後、メモリがたくさん積んであるマシン上で Visual Studio .NET を起動すると、一瞬で起動する。大抵の場合、エクリプスよりも高速である。
しかし、Visual Studio .NET を毎日のように使っていくと、いつの間にか起動がとても遅くなる(スプラッシュ画面で数秒間〜10秒間も待たされる)ことがよくある。日常的に起動したり終了したりするので、とてもストレスがたまり、そろそろ再インストールかなぁ などと考えたりもする。


この、Visual Studio .NET を使っていくと起動に時間がかかるようになる のはとても不快なので、原因を探ってみた。すぐにわかった。「最近使ったプロジェクト」と「最近使ったファイル」の一覧を、Visual Studio .NET は起動時にスキャンし、そのファイルが正しく存在するかどうかをチェックしているのである。
これは、ローカルのドライブ上であれば大して問題にはならないが、色々なマシンの共有フォルダ上のファイルやプロジェクトを開いたことがある場合は、そのマシンに SMB で接続して、ファイルの存在をチェックしようとする。
ノート PC などでは、接続しているネットワークがよく変化するので、特定のマシン上の共有フォルダ上のファイルやプロジェクトが履歴に残っていて、かつそのマシンにネットワーク的に到達できない場合などは、それに接続しようとしてブロッキングしてしまい、タイムアウトするまで戻ってこない。だから、スプラッシュ・スクリーンの画面で何秒も待たされるのである。
試しにレジストリから履歴を消してみると、一瞬で起動するようになった。
ここで非同期 I/O でも使えばもっと体感速度は上がると思うのだが。
(バックグラウンドで存在チェックして、存在しない場合は黙ってメニューから消す)


「最近使ったプロジェクト」と「最近使ったファイル」の一覧に保存する個数は設定可能だが、少なすぎると不便なので、普段は10個〜20個くらいに設定している。