Visual Studio の起動時間の最適化

Visual Studio は常に、可能な限り迅速に起動することが理想的です。 ただし、Visual Studio 拡張機能と開いているツール ウィンドウは、起動時に自動的に読み込まれるため、起動時間に悪影響を与える可能性があります。 [Visual Studio のパフォーマンスの管理] ウィンドウでは、Visual Studio の起動時間に影響する拡張機能と機能を確認できるだけでなく、それらの読み込み動作を制御することもできます。

起動の動作の制御

起動時間が長くならないように、Visual Studio 2017 は、要求に応じて読み込む方法を使用して、起動時に拡張機能が読み込まれないようにします。 この動作は、Visual Studio の起動後すぐに拡張機能を開くのではなく、起動後、必要に応じて開くことを意味します。 また、前の Visual Studio セッションでツール ウィンドウが開いたままである場合、スタートアップ時間が長くなる可能性があるため、Visual Studio は起動時間に影響しないようにより合理的な方法でツール ウィンドウを開きます。

Visual Studio で起動の遅延が検出されると、ポップアップ メッセージが表示され、拡張機能またはツール ウィンドウが原因で遅延が発生していることを警告します。 メッセージには [Visual Studio のパフォーマンスの管理] ダイアログ ボックスへのリンクも示されます。このダイアログ ボックスは、[Help] > [Visual Studio のパフォーマンスの管理] メニュー コマンドを使用して開くこともできます。

Visual Studio のパフォーマンスの管理 - "拡張機能...によって Visual Studio の速度が遅くなっていることを検出しました。" という内容のポップアップ

ダイアログ ボックスには、起動のパフォーマンスに影響している拡張機能とツール ウィンドウが一覧されます。 このダイアログ ボックスでは、起動時のパフォーマンスを向上させるために拡張機能とツール ウィンドウの設定を変更することができます。

拡張機能の設定を変更する

拡張機能が Visual Studio の起動の遅延の原因となっている場合、いずれかの種類の拡張機能を選択したときに、[Visual Studio のパフォーマンスを管理] ダイアログ ボックスに拡張機能が表示されます。 このダイアログ ボックスには、起動時、ソリューションの読み込み時、エディターでの入力時のパフォーマンスに影響を及ぼす拡張機能が表示されます。

Visual Studio のパフォーマンスの管理 - 拡張機能の表示

起動、ソリューションの読み込み、または入力の時間のそれぞれに対する影響が許容範囲を超えている場合は、[無効にする] ボタンを選択し、シナリオに対して拡張機能を無効にします。 拡張機能マネージャーまたは [Visual Studio のパフォーマンスの管理] ダイアログ ボックスを使用すれば、今後のセッションでいつでも拡張機能を再度有効にすることができます。

ツール ウィンドウの設定を変更する

ツール ウィンドウが Visual Studio の起動の遅延の原因となっている場合は、既定の動作を使用するのではなく、次の 2 つのオプションのいずれかを選択して、動作を上書きすることができます。

  • 起動時にウィンドウを表示しない: Visual Studio を次に開いたときに、指定したツール ウィンドウが常に閉じられます。前のセッションで開いたままの場合でも同じです。 ツール ウィンドウは対応するメニューから開くことができます。
  • 起動時にウィンドウを自動的に隠す: ツール ウィンドウが前のセッションで開いたままの場合、このオプションを選択すると、起動時にツール ウィンドウのグループが折りたたまれ、ツール ウィンドウが初期化されないようになります。 このオプションは、ツール ウィンドウがまだ使用可能でも、Visual Studio の起動時間には悪影響しなくなるため、ツール ウィンドウを頻繁に使用する場合に適しています。

Visual Studio のパフォーマンスの管理 - ツール ウィンドウの表示

いつでもこのダイアログ ボックスに戻って、特定のツール ウィンドウの設定を変更することができます。

ソリューションの読み込み時間の短縮

Visual Studio 2017 では、ライトウェイト ソリューション ロードという新しい機能をサポートしています。これにより、IDE で大規模なソリューションを読み込む場合に必要な時間とメモリの量を減らすことができます。 多くの C#、VB、または C++ プロジェクトを含む大規模なソリューションがある場合に、ライトウェイト ソリューション ロードを有効にすると、パフォーマンスが大幅に向上する可能性があります。

ライトウェイト ソリューション ロードを有効にすると、一部の IDE 機能を完全に利用できないため、既定では機能がオフになっています。 次のセクションは、この機能を有効にするかどうかを決めるときに役立ちます。

ライトウェイト ソリューション ロードを有効にする

IDE 全体または個々のソリューションに対して、ライトウェイト ソリューション ロードを有効にすることができます。

すべてのプロジェクトおよびソリューションの設定に合わせてライトウェイト ソリューション ロードを変更するには、[ツール]、[オプション]、[プロジェクトおよびソリューション]、[全般] の順に移動し、次の 3 つのロード オプションのいずれかを選択します。

[ツール] - [オプション] ダイアログ ボックス

  • [Let Visual Studio choose what's best for my solution](ソリューションに最適な機能を Visual Studio に選択させる): ソリューションを開くと、Visual Studio が各ソリューションを分析してライトウェイト ソリューション ロードを適用するかどうかを判断します。
  • 有効: IDE 全体の設定に関係なく、このソリューションに対してライトウェイト ソリューション ロードが有効になります。
  • 無効: IDE 全体の設定に関係なく、このソリューションに対してライトウェイト ソリューション ロードが無効になります。

個々のソリューションに対してライトウェイト ソリューション ロードを有効にするには、ソリューション エクスプローラーで最上位のソリューション ノードを選択します。 [プロパティ] ウィンドウで、[ライトウェイト ロード] プロパティに対して、[既定][有効]、または [無効] のいずれかの値を選択します。

ソリューション エクスプローラー

ソリューション エクスプローラーで最上位のソリューション ノードを右クリックし、[ライトウェイト ソリューション ロードを有効にする] (機能が現在無効である場合) または [ライトウェイト ソリューション ロードを無効にする] (機能が現在有効である場合) のいずれかを選択することもできます。

ライトウェイト ソリューション ロードの設定を変更した場合、その変更はソリューションの次回の読み込み時に有効になります。 IDE を再起動する必要はありません。

ライトウェイト ソリューション ロードを自動的に有効にする

Visual Studio 2017 で大規模なソリューションを開いたときに、ライトウェイト ソリューション ロードを有効にするよう求めるポップアップ メッセージが表示される場合があります。 このメッセージは、多くの C#、VB、または C++ プロジェクトを含むソリューションに対してのみ表示されます。 [有効にする] を選択すると、そのソリューションに対してのみライトウェイト ソリューション ロードが有効になります。 IDE 全体の設定は変更されません。

ポップアップ ウィンドウ

後から、ソリューションの [プロパティ] ウィンドウでライトウェイト ソリューション ロードを無効にすることができます。

制限事項

ライトウェイト ソリューション ロードが有効な場合は、IDE のほとんどの機能を完全に使用できます。 ただし、一部の IDE 機能とサード パーティの拡張機能は完全に互換性がない場合があります。 ライトウェイト ソリューション ロードが有効な場合、以下の機能が動作しないことがわかっています。

  • ライトウェイト ソリューション ロードが有効になっている場合、一部のサード パーティの拡張機能が正常に動作しないことがあります。
  • エディット コンティニュは、デバッグの開始時に読み込まれないプロジェクトでは機能しません。 このようなプロジェクトに含まれるファイルは読み取り専用になり、編集しようとするとプロジェクトが読み込まれていないことを示すエラーが報告されます。
  • ライトウェイト ソリューション ロードが有効になっているときに、F# プロジェクトでシンボルが正常にビルドされず、GoTo で完全に利用できないことがあります。