Visual Studio のパフォーマンスに関する推奨事項は、まれに発生する可能性があるメモリ不足の状況を想定しています。 このような状況では、使用していない可能性のある特定の Visual Studio 機能を最適化できます。 次のヒントは、一般的な推奨事項としては意図されていません。
注
メモリの問題が原因で製品の使用が困難な場合は、フィードバック ツールでお知らせください。
64 ビット OS を使用する
システムを 32 ビット バージョンの Windows から 64 ビット バージョンにアップグレードする場合は、Visual Studio で使用できる仮想メモリの量を 2 GB から 4 GB に拡張します。 64 ビット オペレーティング システムのアップグレードにより、Visual Studio でより大きなワークロードを処理できます。
詳細については、「Windows および Windows Server リリースのメモリ制限 」を参照してください。
ヒント
Windows 上の Visual Studio 2022 は、64 ビット アプリケーションです。 以前のバージョンは 32 ビットです。
ファイルの自動復元を無効にする
Visual Studio では、前のセッションで開いたままだったドキュメントが自動的に再び開きます。 このファイルの自動復元アクションにより、プロジェクトの種類と開かれているドキュメントに応じて、ソリューションの読み込みに要する時間が最大 30% 以上長くなる可能性があります。 Windows フォームや XAML などのデザイナーや、一部の JavaScript ファイルや TypeScript ファイルは、開くのに時間がかかる場合があります。
Visual Studio では、ドキュメントの自動復元によってソリューションの読み込みが遅くなっているときに、黄色のバーで通知されます。
ファイルの自動開き直しを無効にするには、[ツール>オプション] ウィンドウを開き>[プロジェクトとソリューション>General] セクションを展開し、[ソリューションの読み込み時にドキュメントを再度開く] チェック ボックスをオフにします。
ファイルの自動再び開く機能を無効にするには、[ ツール>オプション ] ダイアログを開き、[ プロジェクトとソリューション>General ] セクションを展開します。 [ソリューションの読み込み時にドキュメントを再度開く] チェック ボックスをオフにして、[OK] を選択します。
ファイルの自動復元を無効にした場合、開きたいファイルに簡単に移動するには、[ に移動] コマンドのいずれかを使用します。
一般的な [移動] 機能の場合は、[編集]>[移動]>[すべてに移動] を選ぶか、Ctrl+T キーを押します。
[編集]>[移動]>[最後の編集の場所へ移動] を使用するか、Ctrl+ Shift+Backspace キーを押すことで、ソリューション内の最後の編集の場所に移動することができます。
ソリューション内の最近アクセスしたファイルの一覧を表示するには、[最近使ったファイルに移動] を使用します。 [編集]>[移動]>[最近使ったファイルへ移動] を選ぶか、Ctrl+1 キー、Ctrl+R キーを押します。
デバッグ オプションを構成する
通常、デバッグ セッション中にメモリ不足が発生している場合は、1 つ以上の構成変更を行うことでパフォーマンスを最適化できます。
「マイコードのみ」を有効にする
最も簡単な最適化は、プロジェクトのシンボルのみを読み込む マイ コード 機能を有効にすることです。 この機能を有効にすると、マネージド アプリケーション (.NET) をデバッグするためのメモリが大幅に節約される可能性があります。 このオプションは、一部のプロジェクトの種類で既定で既に有効になっています。
マイコードのみ機能を有効にするには、[ツール>オプション] ウィンドウを開き、[すべての設定] の [デバッグ] セクションを展開し、[全般]セクションを開きます。 [ マイ コードのみを有効にする ] チェック ボックスをオンにします。
マイ コードのみ機能を有効にするには、[ツール>オプション] ダイアログを開き、[デバッグ>] セクションを展開します。 [ マイ コードのみを有効にする ] チェック ボックスをオンにし、[ OK] を選択します。
を読み込むシンボルを指定する
ネイティブ デバッグの場合、シンボル ファイル (.pdb) の読み込みは、メモリ リソースの面でコストがかかります。 メモリを節約するためにデバッガー シンボルの設定を構成できます。 通常は、プロジェクトからモジュールのみを読み込むソリューションを構成します。
シンボルの読み込みを指定するには、[ ツール>オプション ] ウィンドウを開き、[ すべての設定]>[Debugging>Symbols>Search and Load]\(検索と読み込み \) セクションを展開します。 [含まれるモジュール] の一覧を設定するには、[+ 追加] を選択します。 [ 項目の追加 ] ダイアログで、含めるモジュールの名前 (読み込み) を指定し、[ 保存] を選択します。 プロセスを繰り返して、一覧にモジュールを追加します。
シンボルの読み込みを指定するには、[ ツール>オプション ] ダイアログを開き、[ デバッグ>Symbols ] セクションを展開します。 [ モジュール フィルターの指定 ] リンクを選択します。 [シンボル検索の 自動設定 ] ダイアログで、読み込むモジュールを指定します。 モジュールを追加したら、[ OK] を選択します。
デバッグ中に、モジュール ウィンドウで特定のモジュールを右クリックして、シンボルの読み込みにモジュールを明示的に含めることもできます。 (デバッグ中にウィンドウを開くには、[デバッグ]>[Windows>モジュール] を選択します)。
詳細については、「デバッガーでシンボル ファイルとソース ファイルを指定する」を参照してください。
診断ツール を無効にする
使用後に CPU プロファイルを無効にすることをお勧めします。 この機能では、大量のリソースが消費される可能性があります。 CPU プロファイリングが有効になると、この状態は後続のデバッグ セッション間で保持されるため、完了したら明示的に無効にする価値があります。 提供されている機能が不要な場合は、デバッグ中に診断ツールを無効にして、一部のリソースを保存できます。
診断ツールを無効にするには、[ツール>オプション] ウィンドウを開き、[>Debugging>General] セクションを展開します。 [ デバッグ中に診断ツールを有効にする ] チェック ボックスをオフにします。
診断ツールを無効にするには、[ツール>オプション] ダイアログを開き、[デバッグ>] セクションを展開します。 [ デバッグ中に診断ツールを有効にする ] チェック ボックスをオフにし、[ OK] を選択します。
詳細については、「プロファイリング ツールの」を参照してください。
ツールと拡張機能を無効にする
一部のツールまたは拡張機能は、パフォーマンスを向上させるためにオフにすることができます。
ヒント
多くの場合、拡張機能を一度に 1 つずつオフにし、パフォーマンスを再確認することで、パフォーマンスの問題を特定できます。
マネージド言語サービス (Roslyn)
.NET コンパイラ プラットフォーム ("Roslyn") のパフォーマンスに関する考慮事項については、「大規模なソリューションのパフォーマンスに関する考慮事項」を参照してください。
CodeLens を無効にする
Visual Studio では、表示される各メソッドに対して すべての参照の検索 タスクが実行されます。 CodeLens には、参照数のインライン表示などの機能が用意されています。 この作業は、ServiceHub.RoslynCodeAnalysisService32などの別のプロセスで実行されます。 大規模なソリューションやリソースに制約のあるシステムでは、この機能がパフォーマンスに大きな影響を与える可能性があります。 メモリの問題が発生している場合 (たとえば、4 GB のコンピューターに大規模なソリューションを読み込む場合や、このプロセスの CPU 使用率が高い場合など)、CodeLens を無効にしてリソースを解放できます。
CodeLens 機能を無効にするには、[ツール>オプション] ウィンドウを開き、[>テキスト エディター>CodeLens] セクションを展開します。 [ CodeLens を有効にする] チェック ボックスをオフにします。
CodeLens 機能を無効にするには、[ ツール>オプション ] ダイアログを開き、[ テキスト エディター>CodeLens ] セクションを展開します。 [ CodeLens を有効にする ] チェック ボックスをオフにし、[ OK] を選択します。
詳細については、「CodeLensを使用してコードの変更やその他の履歴を検索する
を参照してください。
その他のツールと拡張機能
拡張機能 を無効にする
拡張機能は、新しい機能を提供したり、既存の機能を拡張したりする、Visual Studio に追加される追加のソフトウェア コンポーネントです。 拡張機能は、多くの場合、メモリ リソースの問題の原因になる可能性があります。 メモリ リソースの問題が発生している場合は、拡張機能を一度に 1 つずつ無効にして、それがシナリオまたはワークフローにどのように影響するかを確認してみてください。
拡張機能を無効にするには、[拡張機能の ]>[拡張機能の管理]に移動し、特定の拡張機能を無効にします。
マップ モードの を無効にする
マップ モード スクロール バーにコード行がミニチュアで表示されます。 マップ モードは既定で有効になっています。
マップ モードを無効にするには、[ツール>オプション] ウィンドウを開き>Languages>Defaults>General>Scroll Bars] セクションを展開します。 ドロップダウン リストを使用し、[ 垂直スクロール バー モード ] オプションを [バー モード] に設定します。
マップ モードを無効にするには、[ ツール>オプション ] ダイアログを開き、[ テキスト エディター>すべての言語>スクロール バー ] セクションを展開します。 [ 動作 ] グループで、[ 垂直スクロール バーにマップ モードを使用する ] オプションをオフにし、[ OK] を選択します。
ワード ラップ を無効にする
ワード ラップ は、コード エディター ウィンドウの現在の幅を超える長いコード行の部分を表示します。 ワード ラップは既定でオンになっています。
現在のプロジェクトのワード ラップを無効にするには、 編集>Advanced>Word Wrap を選択します。 (同じメニュー コマンドを使用して、この設定を切り替えることができます)。
また、すべてのプロジェクトでこの機能を無効にすることもできます。
[ツール オプション ] ペインを開き、[すべての設定 言語 デフォルト 一般 ] セクションを展開し、[折り返し ] チェックボックスをオフにします。また、すべてのプロジェクトでこの機能を無効にすることもできます。 [ツール>オプション] ダイアログを開き、[テキスト エディター>すべての言語>General] セクションを展開します。 [設定] グループの [Word wrap] チェック ボックスをオフにし、[OK] を選択します。
XAML デザイナーの を無効にする
XAML デザイナーは既定で有効になっていますが、.xaml ファイルを開く場合にのみリソースを使用します。 XAML ファイルを操作してもデザイナー機能を使用しない場合は、この機能を無効にしてメモリを解放できます。
XAML デザイナーを無効にするには、[ツール>オプション] ウィンドウを開き>XAML デザイナー>General] セクションを展開し、[XAML デザイナーを有効にする] チェック ボックスをオフにします。
[XAML デザイナーの有効化] オプションを更新した後、変更を有効にするには Visual Studio を再起動する必要があります。
XAML デザイナーを無効にするには、[ ツール>オプション ] ダイアログを開き、[ XAML デザイナー>General ] セクションを展開します。 [ XAML デザイナーを有効にする ] チェック ボックスをオフにし、[ OK] を選択します。
[XAML デザイナーの有効化] オプションを更新した後、変更を有効にするには Visual Studio を再起動する必要があります。
ワークロード を削除する
Visual Studio インストーラーを使用して、使用されなくなったワークロードを削除できます。 このアクションにより、不要になったパッケージとアセンブリをスキップすることで、起動と実行時のコストを効率化できます。
追跡されていないファイルをローカルの .gitignore に追加する
Visual Studio では、追跡されていないファイルを含む Git コマンド
git statusを実行して、リポジトリに新しいファイルを追加するときにシームレスなエクスペリエンスを提供します。 追跡されていないファイルが多数ある場合、git statusは余分なメモリを消費する可能性があります。 これらのファイルを無視し、git statusのパフォーマンスを向上させるには、これらのファイルまたはフォルダーをローカルの .gitignore ファイルに追加します。 ファイルにアクセスするには、Git>設定>Git リポジトリ設定に移動します。 次に、[Git ファイル ] セクションで、[ の追加]選択して .gitignore ファイルを作成するか、既にある場合は [ 編集] を選択します。 Git ツール でコミット グラフを有効にする
Visual Studio 2022 バージョン 17.2の新機能: Visual Studio で Git リポジトリまたはブランチ履歴を表示するときに遅延が発生する場合は、役立つ "コミット グラフ" 機能を統合しました。 コミット グラフを使用するには、Visual Studio 2022をダウンロードしてインストールしてください
。 コミット グラフの詳細については、Visual Studio での Git エクスペリエンスを向上させる ブログ記事を参照してください。
ガベージ コレクションを強制する
CLR では、ガベージ コレクションのメモリ管理システムが使われます。 このシステムでは、不要になったオブジェクトによってメモリが使用されることがあります。 この状態は一時的なものです。ガベージ コレクターは、パフォーマンスとリソース使用量のヒューリスティックに基づいてこのメモリを解放します。 Visual Studio のホットキーを使用して、CLR に未使用のメモリを強制的に収集させることができます。 膨大な量のガベージが収集を待っている場合に、ガベージ コレクションを強制すると、タスク マネージャーで devenv.exe プロセスのメモリ使用量が低下するはずです。 このメソッドを使用する必要はほとんどありません。 ただし、コストのかかる操作 (完全ビルド、デバッグ セッション、ソリューションを開くイベントなど) が完了すると、プロセスで実際に使用されているメモリの量を判断するのに役立ちます。 Visual Studio にはマネージドとネイティブが混在しているので、ネイティブ アロケーターとガベージ コレクターの間での限られたメモリ リソースの競合が発生する可能性があります。 メモリ使用率が高い条件下では、ガベージ コレクターを強制的に実行するのに役立つ場合があります。
ガベージ コレクションを強制するには、次のキーボード ショートカットを使用します。 Ctrl+Alt+Shift+F12、Ctrl +Alt+Shift+F12 (2 回押します)。
ガベージ コレクションを強制するとシナリオが確実に機能する場合は、この動作がバグである可能性が高いため、Visual Studio フィードバック ツール を使用してレポートを提出します。
CLR ガベージ コレクターについて詳しくは、「ガベージ コレクションの基礎」をご覧ください。
関連コンテンツ
- Visual Studio のパフォーマンス を最適化する