Visual Studio のパフォーマンスに関するヒントとテクニック
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 では、ドキュメントの自動復元によってソリューションの読み込みが遅くなっているときに、黄色のバーで通知されます。 次の手順に従って、ファイルの自動再び開く機能を無効にすることができます。
[ツール]
[オプション] 選択して、[ オプション ] ダイアログ ボックスを開きます。[プロジェクトとソリューション]>[全般] ページで、[ソリューションの読み込み時にドキュメントを再度開く] をオフにします。
ファイルの自動復元を無効にした場合、開きたいファイルに簡単に移動するには、[ に移動] コマンドのいずれかを使用します。
一般的な [移動] 機能の場合は、[編集]>[移動]>[すべてに移動] を選ぶか、Ctrl+T キーを押します。
[編集]>[移動]>[最後の編集の場所へ移動] を使用するか、Ctrl+ Shift+Backspace キーを押すことで、ソリューション内の最後の編集の場所に移動することができます。
ソリューション内の最近アクセスしたファイルの一覧を表示するには、[最近使ったファイルに移動] を使用します。 [編集]>[移動]>[最近使ったファイルへ移動] を選ぶか、Ctrl+1 キー、Ctrl+R キーを押します。
デバッグ オプションを構成する
通常、デバッグ セッション中にメモリ不足が発生している場合は、1 つ以上の構成変更を行うことでパフォーマンスを最適化できます。
「マイコードのみ」を有効にする
最も簡単な最適化は、プロジェクトのシンボルのみを読み込む マイ コード 機能を有効にすることです。 この機能を有効にすると、マネージド アプリケーション (.NET) をデバッグするためのメモリが大幅に節約される可能性があります。 このオプションは、一部のプロジェクトの種類で既定で既に有効になっています。
[マイ コードのみ]を有効にするには、[ツール]>[オプション]>[デバッグ]>[全般]を選択し、次に [マイ コードのみを有効にする]を選択します。
を読み込むシンボルを指定する
ネイティブ デバッグの場合、シンボル ファイル (.pdb) の読み込みは、メモリ リソースの面でコストがかかります。 メモリを節約するためにデバッガー シンボルの設定を構成できます。 通常は、プロジェクトからモジュールのみを読み込むソリューションを構成します。
シンボルの読み込みを指定するには、[ツール] >[オプション]>[デバッグ]>[シンボル]を選択します。
オプションを
[指定したモジュールのみを読み込む] に設定し、[すべてのモジュールを読み込む]ではなく、読み込みたいモジュールを指定します。 デバッグ中に、モジュール ウィンドウで特定のモジュールを右クリックして、シンボルの読み込みにモジュールを明示的に含めることもできます。 (デバッグ中にウィンドウを開くには、[デバッグ]>[Windows>モジュール] を選択します)。 詳細については、「デバッガーでシンボル ファイルとソース ファイルを指定する」を参照してください。
診断ツール を無効にする
使用後に CPU プロファイルを無効にすることをお勧めします。 この機能では、大量のリソースが消費される可能性があります。 CPU プロファイリングが有効になると、この状態は後続のデバッグ セッション間で保持されるため、完了したら明示的に無効にする価値があります。 提供されている機能が不要な場合は、デバッグ中に診断ツールを無効にすることで、一部のリソースを保存できます。
診断ツールのを無効にするには、デバッグ セッションを開始し、[ツール]>[オプション]>[デバッグ]>[全般]を選択し、[デバッグ中に診断ツールを有効にする] オプションの選択を解除。
詳細については、「プロファイリング ツールの」を参照してください。
ツールと拡張機能を無効にする
一部のツールまたは拡張機能は、パフォーマンスを向上させるためにオフにすることができます。
アドバイス
多くの場合、拡張機能を一度に 1 つずつオフにし、パフォーマンスを再確認することで、パフォーマンスの問題を特定できます。
マネージド言語サービス (Roslyn)
.NET コンパイラ プラットフォーム ("Roslyn") のパフォーマンスに関する考慮事項については、「大規模なソリューションのパフォーマンスに関する考慮事項」を参照してください。
CodeLens を無効にする
Visual Studio では、表示される各メソッドに対して すべての参照の検索 タスクが実行されます。 CodeLens には、参照数のインライン表示などの機能が用意されています。 この作業は、ServiceHub.RoslynCodeAnalysisService32などの別のプロセスで実行されます。 大規模なソリューションやリソースに制約のあるシステムでは、この機能がパフォーマンスに大きな影響を与える可能性があります。 メモリの問題が発生している場合 (たとえば、4 GB のコンピューターに大規模なソリューションを読み込む場合や、このプロセスの CPU 使用率が高い場合など)、CodeLens を無効にしてリソースを解放できます。
CodeLens
無効にするには、[ツール] [オプション] [テキスト エディター] [すべての言語] CodeLens を選択し、機能の選択を解除します。詳細については、「CodeLensを使用してコードの変更やその他の履歴を検索する
を参照してください。
その他のツールと拡張機能
拡張機能 を無効にする
拡張機能は、新しい機能を提供したり、既存の機能を拡張したりする、Visual Studio に追加される追加のソフトウェア コンポーネントです。 拡張機能は、多くの場合、メモリ リソースの問題の原因になる可能性があります。 メモリ リソースの問題が発生している場合は、拡張機能を一度に 1 つずつ無効にして、それがシナリオまたはワークフローにどのように影響するかを確認してみてください。
拡張機能を無効にするには、[拡張機能の ]>[拡張機能の管理]に移動し、特定の拡張機能を無効にします。
マップ モードの を無効にする
マップ モード スクロール バーにコード行がミニチュアで表示されます。 マップ モードは既定で有効になっています。
マップ モードを無効にするには、[ツール]>[オプション]>[テキスト エディター]>[すべての言語]>[スクロール バー]に移動し、[動作] セクションで、[垂直スクロール バーにマップ モードを使用する ] オプションの選択を解除します。
ワード ラップ を無効にする
ワード ラップ は、コード エディター ウィンドウの現在の幅を超える長いコード行の部分を表示します。 ワード ラップは既定でオンになっています。
現在作業中のプロジェクトのワード ラップを無効にするには、[編集]>[詳細]>[ワード ラップ]に移動します。 (同じメニュー コマンドを使用して、この設定を切り替えることができます)。
すべてのプロジェクトでワード ラップを無効にするには、[ツール]>[オプション]>[全般]>[テキスト エディター]>[すべての言語]>[全般]] に移動し、[設定] セクションで [ワード ラップ] オプションの選択を解除します。
XAML デザイナーの を無効にする
XAML デザイナーは既定で有効になっていますが、.xaml ファイルを開く場合にのみリソースを使用します。 XAML ファイルを操作してもデザイナー機能を使用しない場合は、この機能を無効にしてメモリを解放します。
XAML デザイナーを無効にするには、ツール>オプション>XAML デザイナー>XAML デザイナーのを有効にするに移動し、オプションの選択を解除します。
ワークロード を削除する
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 のパフォーマンス を最適化する