ReSharper (と Visual Studio) を高速化
Visual Studio にインストールされている ReSharper には、2 つの主要なパフォーマンス上の問題があります。
システムが要件を満たしていません。 この場合、問題に対処するための最初のステップとして、システムをアップグレードすることをお勧めします。
ReSharper が最新のハードウェアで正常に動作し、調整することなく中規模および大規模のソリューションで動作することを常に確認しています。 Visual Studio 開発者は同じことに取り組んでいると信じています。
一部の機能を無効にして古いハードウェアで ReSharper を高速化しようとすると、開発パフォーマンスを高速化できる優れたツールが失われます。
同じ 32 ビットプロセスを共有する Visual Studio と ReSharper は、システムを限界まで押し上げます。 多くの場合、これは大規模なソリューションで発生することが報告されており、ReSharper が Visual Studio v. 2015 以降にインストールされている場合に発生します。
この場合、システムが要件を満たしていれば、ほとんどの場合、以下のチェックリストがパフォーマンスの問題の修正に役立ちます。
大規模なソリューションを初めて開く際にかなりの時間(数分かかる場合もあります)がかかっても、それが問題の兆候というわけではありません。 ReSharper はソリューションのモデルをビルドし、キャッシングします。このモデルは、 コード解析だけでなく、 ナビゲーションと検索、 コード補完、 ユニットテストなど、ほぼすべての機能で利用されます。
インデックス作成の結果はすでにハードドライブにキャッシュされているため、このソリューションを後で開いても、大幅な遅延は発生しません。
ReSharper は最初の開始時にアセンブリアノテーションを処理するため、ReSharper キャッシュをクリーンアップしても、その後の開始はより高速になることに注意してください。
最初に試してみてください
パフォーマンスの問題の最も一般的な原因は、次のアクションで取り除くことができます。
に移動して、パフォーマンスに影響する ReSharper および Visual Studio 環境設定を確認し、すぐに修正してください。
ソリューション全体の分析 を使用しない場合は無効化するか、ソリューション全体の分析で警告を無効化することを検討してください。 無効になっている場合でも、ソリューション 全体に対してコードインスペクションを実行することにより、ソリューション内のすべてのコードの問題をいつでも見つけることができます。 ソリューション全体の分析を構成するには、 に移動します。
Visual Studio のオプションで を開き、ソース管理プラグインとして None を選択します。 これにより、Git または別の VCS プロバイダーがオフになり、全体的なパフォーマンスが向上します。
ハードウェアチェックリスト
ハードウェア割り込みと DPC がないことを確認します(通常、悪いドライバや仮想化によって引き起こされます)。
ハードドライブが断片化していないことを確認してください。
ページファイルが 1GB 以上であることを確認してください。
空きディスク容量が 15% 以上であることを確認してください(MFT の断片化 / スペース不足リスク)。
4GB 以上の空き容量があることを確認してください。
SSD にソリューションと ReSharper キャッシュを保存すると、RAM ディスクが大きな違いにはなりません。
推奨システムソフトウェア調整
Microsoft が現在サポートしている Windows 版を使用する
Windows を最新の状態に保つ
64 ビットオペレーティングシステムを使用する
devenv.exe 、 msbuild.exe 、プロジェクト / ソリューションフォルダー、および ReSharper キャッシングフォルダー(デフォルトは %LOCALAPPDATA%\JetBrains\Transient と 構成可能 )を Windows Defender(および他のウイルス対策ソフトウェア)の無視リストに追加してください。
不要なサービスとプロセスを停止する
プロジェクト / ソリューションフォルダーと ReSharper キャッシングフォルダーを Windows インデックス作成から除外してください。
Visual Studio
Visual Studio の設定を調整する前に、最新の Visual Studio アップデート / サービスパック / ホットフィックスがインストールされていることを確認してください。
Visual Studio 設定を構成する
Visual Studio オプション( )を開き、次のように環境設定を構成します。
: クライアントのパフォーマンスに基づいて視覚体験を自動的に調整する を無効にし、 リッチクライアントのビジュアル体験を可能にする を無効にし、 可能であれば、ハードウェアグラフィックアクセラレーションを使用 を有効にします。 これらの調整により、UI の遅れが減少し、全体のパフォーマンスが向上します。
: ソース管理プラグインに None を選択します。 これにより、Git または別の VCS プロバイダーがオフになり、全体的なパフォーマンスが向上します。
: 起動時に空の環境を表示し、コンテンツのダウンロードを無効にすることを選択します。 開始ページとニュースチャンネルをオフにすると、起動時に時間がかかることがあります。
: 自動回復情報の保存 を無効にします。 開いているドキュメントの現在の状態を常にコピーすることは、クラッシュ時には有用かもしれませんが、大規模なソリューションでは UI がフリーズする原因になることがあります(例として、コメントは こちらを参照してください)。 この機能を無効にし、重要な変更を行った後はファイルを保存する習慣を身に付けることをお勧めします。
: 変更を追跡する を無効にします。 「変更の追跡」が有効になっている場合、Visual Studio は編集された行にガターハイライトを追加します。 現在のファイルの編集が多すぎると、これらのハイライトを再計算する必要があることが多いため、エディターが遅くなる可能性があります。
これは便利な機能ですが、特に大きなファイルを扱う場合は無効化をお勧めします。: 垂直スクロールバーにアノテーションを表示する を無効にします。 ReSharper は右ガターや垂直スクロールバーを 広範囲に活用し、 設計時インスペクション通知、 構造検索と置換の結果、 To-do 項目 、および ファイル内のシンボルの使用箇所を表示します。 Visual Studio もスクロールバー上に多数の通知を表示します。また、時には Visual Studio と ReSharper の両方が同じエラーを報告して二重に表示されることがあり、しばしばスクロールバーにマークが多数表示されて煩雑になります。
ReSharper のマークを重視する場合は、Visual Studio のアノテーションを完全または一部無効化し、それにより描画を省略してパフォーマンスを向上できます。
または、スクロールバー上の ReSharper のマークを無効化できます。 ReSharper | オプション | エディター | エディターの外観 に移動し、 マーカーバーを表示しない を選択してください。:CodeLens を無効化します。 CodeLens は 大規模なソリューションのパフォーマンス考慮事項 の一つです。なぜなら 「IDE では画面にメソッドが表示されるたびに全参照検索が行われる」のです。 そのため、動作が遅いと感じた場合は無効化をおすすめします。
CodeLens の一部の機能は ReSharper でも提供されており、たとえば、すべての参照や シンボルの使用箇所を素早く取得できます Alt+F7。: スクリプト のジャストインタイムデバッグを無効にします。 これにより、ビルドとデバッグが高速化されます。
: Web フォームデザイナを無効にします。 これにより、UI とエディターの遅延が減少します。
: XAML デザイナーを無効にします。 ビジュアル XAML デザイナーは Visual Studio 2019 で リソース消費が多い機能として知られていました。 そのため、XAML フォームのビジュアル表現なしで XAML コードを操作する場合は、XAML デザイナーを無効にすることをお勧めします。
: すべての自動フォーマット設定を無効にします。 ReSharper の フォーマットアシスタントを使用すると、コードが 2 回再フォーマットされるのを防ぎ、編集の遅れを減らすことができます。
: ファイル構造 ウィンドウを使っている場合、エディター上部のナビゲーションバーは不要なことが多く、このオプションページで安全に無効化できます。
: C/C++ コードを使用している場合は、 環境設定を
Trueに設定します。 これにより、 大きなファイルでのタイピング体験が向上します。: ReSharper の単体テスト機能を使用する場合は、 リアルタイムでテストを発見 ... を無効にできます。
Roslyn の設定
Visual Studio ソリューションが大きくなると、同時に動作する 2 つのコード分析エンジン(ReSharper と Roslyn)が、共有する 32 ビットプロセスのメモリ制限に達する可能性があります。
以下の記事では、Roslyn アナライザーのパフォーマンスおよびメモリ使用量の最適化方法について説明しています: Roslyn。 大規模ソリューションのパフォーマンスに関する考慮事項、 .csproj、大規模ソリューションおよびメモリ使用量についてのストーリー
その他の Visual Studio の調整
Visual Studio から未使用のパッケージと拡張機能をアンインストールします。
ここでメンションする価値があるのは、ReSharper と同様の機能を提供する、デフォルトで有効になっているものを含む Visual Studio 拡張機能があることです。
利用していないプロジェクトがある場合は、それらを Visual Studio からアンロードして、必要になったときに再度ロードが可能です。 ソリューション エクスプローラーでプロジェクトまたはフォルダーを右クリックし、 プロジェクトのアンロード または ソリューションフォルダーのプロジェクトをアンロードする を選択すると、全体的なパフォーマンスが向上します。
ReSharper
ReSharper の調整を始める前に、 最新バージョンを実行していることを確認し、そうでない場合はアップデートを検討してください。
ReSharper 設定を構成する
ReSharper にはさまざまな機能があり、必要に応じて ReSharper オプションでほとんどの機能を無効化できます。 ここでの一般的なルールは:もしパフォーマンスに問題があれば、使用していない機能を無効化してください。
ReSharper オプション( Alt+R O )を開き、次のように環境設定を構成してください:
:このオプションページでは Visual Studio 2015 以降の類似機能との連携を設定できます。 Visual Studio の電球を隠す が選択されており、 Visual Studio バルブアクションを ReSharper アクションインジケーターにマージする がオフであることを確認してください。 ReSharper では、Visual Studio の電球アクションを ReSharper 独自の アクションリストに統合して表示できます。 これはパフォーマンス面でコストがかかるため、ReSharper は Roslyn に利用可能なアクションをリクエストしなければならず、CPU やメモリ使用量の増加につながる場合があります。
すべてのリクエストはバックグラウンドスレッドで行われますが、顕著なパフォーマンス問題がある場合は Visual Studio アクション連携をオプトアウトすることもできます。: このオプションページでは、 コードインスペクションの様々な側面を無効にすることができます。 無効にできる最小限の機能から始めて、無効にできるものは次のとおりです。
ソリューション全体の分析 を使用しない場合は無効化するか、ソリューション全体の分析で警告を無効化することを検討してください。 無効になっている場合でも、ソリューション 全体に対してコードインスペクションを実行することにより、ソリューション内のすべてのコードの問題をいつでも見つけることができます。
最終的なステップは、 コード分析を有効にする チェックボックスをオフにすることです。 これにより 設計時インスペクションが無効化されますが、必要なときに 任意のスコープでコードインスペクションを実行することは可能です。
: このページでは、コード分析から除外するものを選択します。
スキップする要素 セクションでは、 コードインスペクションで無視するファイルとフォルダーを指定できます。 Control+Alt+Shift+D8 を押して、現在のファイルを無視リストに追加することもできます。 ショートカットをもう一度押すと、このファイルのインスペクションが再び有効になります。 この操作に別のショートカットをバインドする場合は、Visual Studio オプションで
ReSharper_EnableDaemonコマンドを探します。サードパーティコードまたは凍結コードを含み、今後変更予定のない プロジェクトがある場合は、 無視するプロジェクト セクションで これらのプロジェクトをインデックス作成から除外できます。
: ここでは、使用しない ReSharper 機能を無効にできます。 例: ユニットテスト チェックボックスをオフにすると、すべての ReSharper ユニットのテスト機能が無効になり、メモリが節約されます。
: ソリューションキャッシングの保存先: セレクターで「System TEMP」または任意のカスタムフォルダーを選択してください。 ソリューションが VCS 管理下にない場合、「ソリューションフォルダー」も選択可能です。 カスタムフォルダーの選択を推奨します。 「ユーザー ローカル設定フォルダー」 %LOCALAPPDATA% の問題点は、ReSharper がこのフォルダーに書き込みを行うたびに Visual Studio のディレクトリウォッチャーが頻繁にトリガーされることです。
: 入力が遅くなる場合は、これを構成する必要があります。 コードインスペクションと同様に、 ReSharper IntelliSense の特定の部分を無効にするか、完全にオフにして Visual Studio のネイティブの IntelliSense にフォールバックできます。 無効にできる最小限の機能から始めて、無効にできるものは次のとおりです。
: メンバーの署名を表示する、 シンボルの種類を表示する、 要約を表示 をクリアします。 これにより、補完リストの構築が簡単になります。
: 特定の言語用の ReSharper の IntelliSense(カスタム IntelliSense )をオフにするか、完全にオフにします(Visual Studio)。
: セミコロンで自動フォーマットする と 右波括弧で自動フォーマットする を無効化してタイピング中の コード整形を回避します。また、 共通の言語固有のタイプミスを修正する も無効化すると、 一部の入力支援機能がオフになります。 これらのチェックボックスをオフにすることで入力の速度が向上します。
C++ を扱う場合、 基本補完でインポート項目を表示する 環境設定も無効化できます。これにより補完リストが簡素化され、タイピング時の遅延を抑制できます。
: 現在行のハイライト、 一致する区切り文字をハイライトする を無効にします。 これにより、UI とエディターの遅延の可能性を減らすことができます。
: 使用しない ReSharper 拡張機能を無効にします。
: インレイヒント を使用しない場合は、 インレイヒント有効化 チェックボックスをオフにして、インレイヒントサブシステム全体を無効にします。
: ReSharper ビルドを使用する を有効にします。 ReSharper の インクリメンタルビルドは、特に大規模ソリューションの場合、ビルド時間を大幅に短縮することができます。
: ここでは、 役に立たないコンテキストアクションを無効にできます。
: JavaScript を使用していてパフォーマンス上の問題がある場合は、 コードのインスペクション時にプロパティのコンテキストを分析する オプションを有効にしないでください。
: ここで、C++、JavaScript、TypeScript、CSS、HTML、JSON ファイル、フォルダー、ワイルドカードを追加して、「スキップ」または「ライブラリ」として扱うことができます。 ReSharper は「スキップ」ファイルを完全に無視し、「ライブラリ」ファイルは読み取り専用として扱います。 ナビゲーション用にはインデックス作成されますが、 インスペクション、 クイックフィックスや リファクタリングは行いません。
: このページでは、関心のない 自動言語挿入を無効にできます。
複雑な UI コントロールを過度に使用しないでください
未使用の 単体テストセッションを閉じます。
ソリューション全体の分析 を有効化すると、ステータスバーにエラー / 警告の数が表示されるので、ソリューションのエラー / 警告ウィンドウは閉じても問題ありません。
その他の調整
コードテンプレート展開を高速化するには、使用するテンプレートの 整形 および 修飾された参照を短縮 オプションをオフにします:

使用しないときは プロセスエクスプローラーウィンドウ を閉じてください。
何も役に立たない場合
上記のすべてを試してもパフォーマンスが低下している場合は、一時的に ReSharper を無効にして、それが減速の原因であるかどうかを確認できます。 ReSharper を無効 / 有効にするには、 に移動し、 一時停止する/今すぐ再開 をクリックします。
ReSharper の一時停止でパフォーマンスが改善されても、 コード解析、 コードのクリーンアップ や コード整形などで時々使いたい場合は、ReSharper のオン・オフを素早く切り替えられるショートカットを設定すると便利です。 操作方法は次の通りです: を開き、 ReSharper_ToggleSuspended コマンドを探して、任意のショートカットキーを押し、 Assign をクリックします。

既知のパフォーマンス上の問題
古いキャッシュ
ReSharper を最近更新し、以前のバージョンで開かれたソリューションでパフォーマンスの低下を観察した場合は、ReSharper キャッシュをクリアしてソリューション .suo ファイルを削除することで、スピードアップを図ることができます。
キャッシュをクリアするには、 に移動し、 キャッシュのクリア をクリックします。
JavaScript ファイルの作成
ソリューション内にビルド済みの JavaScript ファイル(例: jquery.js )がある場合は、ReSharper オプション の ページ・ ライブラリコード セクションにそれらのファイルをリストして分析から除外してください。 Alt+R、O
互換性に関する既知の問題
その他の Visual Studio 拡張機能
主な互換性の問題は、以下の製品で確認されています。
DevExpress CodeRush/Refactor Pro (互換性なし)
Telerik JustCode (互換性なし)
Whole Tomato Visual Assist
生産性のパワーツール
パフォーマンスの低下は、次の製品で確認されています。
StyleCop ReSharper プラグインの一部のバージョン
Visual Studio の PowerCommands
.cshtml ファイルの編集中に Web Essentials が低パフォーマンスに貢献したという報告もあります。 この問題の影響を受ける場合は、 に移動し、 入力時に HTML を自動フォーマットする を 偽 に設定することを検討してください。
Parallels Desktop for Mac
Parallels Desktop を使用して Mac 上の Windows 仮想マシンで Visual Studio を実行している場合、 ReSharper IntelliSense リストのレンダリングは非常に遅いかもしれません。
セットアップでこれが発生する場合は、Coherence モードから全画面モードへの切り替えを検討してください。 2 つのモード間の切り替えに関するガイドラインについては、この Parallels Knowledge Base のエントリ(英語)を参照してください。