Visual Studio “15” のテクニカルプレビューのフェーズを通じて、Microsoftは第一の目的を性能改善だと宣言してきた。性能改善については今までも言及されてきたが、この性能改善に関する変更の詳細を包括的に説明する資料が公開された。これによってVS “15”の起動時間改善について詳しく調べることができる。
VS “15”の起動時間改善
MicrosoftのプログラムマネージャであるSelma Ikiz氏はブログで、氏のチームがVS “15”の起動速度改善をするために調査した領域について詳しく解説している。新しくインストールされ初めてVS “15”がロードされるとき、典型的な起動時、そして、構成が変更されたあとにVS “15”がロードされるときだ。
最初の場合、IDEコンポーネントは可能な場合は遅延ロードされる。IDEのロードと共に、拡張マネージャのようなコンポーネントとManaged Extensibility Framework (MEF)は平行してロードされ、開発者に利用可能なアプリケーションをすぐに提供しようとする。Microsoftのベンチマークによれば、VS2015と比べ、VS “15”は約3倍も高速化されている。
起動速度改善はもっとも一般的なシナリオも対処している。仕事をするためにアプリケーションをローディングする時間だ。Ikiz氏のチームは拡張がVisual Studioの起動を遅くしている主要な原因だと特定した。VS “15”では、拡張は非同期で読み込まれる。また、中核のVisual Studioサービスも非同期で読み込まれるようになる。
VS “15”では読み込みが遅い拡張が特定され、ワンタイムの通知が表示される。また、新しく追加される“Manage Visual Studio Performance”というダイアログでは、起動に影響する拡張やエディタツールウィンドウが一覧される。拡張は無効にできる。ツールウィンドウも無効にできる。デフォルトのままにしておくことも、起動時に隠しておくこともできる。ツールウィンドウを自動で隠すことで起動が終わったあとにユーザーが自分で開くようにできる。
軽量ソリューションロード
テクニカルプレビュー4では、制限があるものの軽量ソリューションロードがデビューした。TP5ではこれにさらなる改善がされている。この機能の目的はユーザーがVS “15”を可能な限り素早く利用できるようにするためだ。このため、ソリューションが開かれたとき、内包されているすべてのプロジェクトをすぐにロードするのではなく、個別のプロジェクトを必要に応じてロードし、多くの定型的な作業(コードの移動や編集、プロジェクトのビルド)は、プロジェクトがロードされていなくてもできるようにする。
現時点ではこの機能は中規模から大規模なコードベースを扱うときに最大の威力を発揮する。この機能はC++のようなアンマネージドコードでも利用できるので、上述した内容ですべての利点が網羅されているわけではない。プロジェクトの遅延ロードが必要なアクションがされると、ソリューションエクスプローラが、テキストメッセージとローディングアイコンでロード中であることを示してくれる。
軽量ソリューションロードはVS “15“ではオプション機能であり、いつでも有効化できる。有効化/無効化には再起動は不要だ。Options | Projects and Solutions
ダイアログの“Lightweight Solution Load (experimental)”で設定できる。
Rate this Article
- Editor Review
- Chief Editor Action