パフォーマンス調整のヒント
この記事では、大規模プロジェクトで作業する際の CLion パフォーマンスを向上させるためのテクニックの概要を説明します。
CLion Nova を有効化する
CLion/Nova は、CLion の改善版で、従来の CLion Classic エンジンの代わりに ReSharper C++/Rider/C++ 言語エンジンを使用しています。 IDE の応答性、精度、パフォーマンスが向上しています。
新規ユーザーの場合、CLion と Nova はデフォルトで有効になっています。 CLion Classic をご利用で、CLion と Nova を試してみたい場合は、ツールバーの IDE とプロジェクトの設定 ボタン( )をクリックし、次に Nova エンジンに切り替える をクリックしてください。

で CLion Nova を有効にすることもできます。
CLion と Nova を有効にした最新バージョンの IDE のご利用をお勧めします。 例: v2024.3 の様々な改善により、 CLion Nova のメモリ使用量を削減(英語)が v2024.2 と比較して IDE 全体のパフォーマンスが向上しました。 これは、Chromium のような大規模プロジェクトで特に顕著です。
メモリヒープを増やす
メモリインジケーターを有効にする
ステータスバーの右下隅にある 2 つのインジケーター(一般的なメモリインジケーターと Clangd のメモリ使用状況インジケーター)を監視することで、パフォーマンスの低下がヒープメモリの不足によるものかどうかを確認できます。
Ctrl+Shift+A を押して アクションの検索 ダイアログを開きます。
memoryと入力し始めてから、2 つのオプション Clangd のメモリ使用量を表示する と メモリインジケーターを表示する を有効化します:

CLion はインジケーターをステータスバーに追加します:


メモリ設定の変更でヒープを増やすダイアログ
メインメニューから を選択します。
開いたダイアログで、 最大ヒープサイズ フィールドにより高いメモリヒープ値を設定します。
保存して再起動 をクリックします。
Toolbox からメモリヒープを増やす
Toolbox アプリからヒープサイズを変更することもできます。
Toolbox で、CLion バージョンを選択し、右側のねじナットボタンをクリックします。
開いたメニューから 設定 を選択します:

構成 セクションに移動し、 最大ヒープサイズ フィールドに新しい値を設定します:

CLion を再起動してください。
-Xmx を調整する
メモリヒープを増やすには、JVM の最大ヒープサイズを設定する -Xmx オプションを変更します。
メインメニューで へ移動します。 このアクションにより、IDE 構成ディレクトリに .vmoptions ファイルのコピーが作成され、エディターで開きます。
-Xmx値を更新します。 例:-Xmx4096mを使用して、デフォルトの 2 GB ではなく 4 GB のメモリを割り当てます。変更を適用するには、CLion を再起動します。
空きヒープメモリの量が最大ヒープサイズの 5% を下回ると、警告が表示されます。 -Xmx 値を調整するには、警告ボックスで「構成 」をクリックしてください。

Clangd に割り当てられているメモリの量を変更する
Ctrl+Shift+A を押して アクションの検索 ダイアログを開きます。
Registryを検索します:

レジストリ ダイアログで、 clion.clangd.max.memory と入力し始めます。
希望する値を設定し、ダイアログを閉じます。

コード分析をスピードアップ
オンザフライコード解析は、CLion で最もパフォーマンスを消費するプロセスの一つです。 軽くするためにできることは次のとおりです。
ファイルの分析を調整する
オンザフライコード解析は、CLion で最もパフォーマンスを消費するプロセスの一つです。 この処理を軽量化するために、現在開いているファイルのハイライトレベルを「なし」、「構文」、「すべての問題」のいずれかに設定できます。
エディターの右上隅にあるインスペクションウィジェットを使用します。

省電力モードを有効にする
次のいずれかのオプションを使用して、省電力モードまたはバッテリー効率モードを有効にできます。
個々のチェックやファイルを一つずつ無効にする代わりに、 省電力モード をお試しください。 このモードでは、IDE 全体でインスペクションやその他のリソースを大量に消費するプロセスがすべて無効になります。
省電力モード を有効にするには、 に進みます。

ステータスバーを右クリックし、「省電力モード 」を選択します。 ステータスバーに「
省電力モード 」アイコンが表示されます。
Clangd ベースのエンジンを確認する
CLion には、デフォルトで有効化されている補完的な Clangd ベースの言語エンジンが組み込まれています。 現在、エラー / 警告のアノテーション、特定のナビゲーションタスク、 ClangFormat を使用したコードのフォーマット、クイックフィックスによるコードのハイライトで機能します。
ほとんどの場合、Clangd ベースのエンジンは、組み込みのエンジンよりも高速に動作します(場合によっては、より正確な結果が得られます)。 ただし、 すべての操作に使用されるわけではありません。 例: Clangd はクイックフィックスの場所を提供しますが、修正自体は CLion 自体のエンジンによって実行されます。 または、 使用箇所の検索 は Clangd を使用して、エディターで現在開いているファイルを検索し、CLion 独自のエンジンを使用して他のすべての使用箇所を検索します。
パフォーマンスの問題を調査するときは、Clangd エンジンの仕様を考慮することをお勧めします。 を使用して、エンジン設定を実験し、特定のタスクのパフォーマンスに影響するかどうかを確認します。
プロジェクト分析を高速化
ディレクトリとファイルの種類を除外する
デフォルトでは、CLion は CMakeLists.txt にリストされているすべてのディレクトリ (
ソースおよびinclude_directoriesパスを含む) にインデックスを付けて、適切なコード解決を保証します。プロジェクトには、バイナリやログ、ビルド成果物など CLion のコードインサイトに影響しないフォルダーが含まれている場合があります。 このようなフォルダーは、そのサイズや場所によってリソース消費が激しくなることがあります。 このような場合は、フォルダーを手動で除外することをお勧めします。プロジェクトツリーでディレクトリを右クリックし、 を選択します。

ファイルが除外されると、そのシンボルは CLion で利用できなくなります。 除外されたファイルに対しては、コード補完、自動インポート(除外されたディレクトリが CMakeLists.txt 内の
include_directoriesによって参照されている場合を除く)、コード生成、ファイル内検索(開いているファイルを除く)、ナビゲーション、リファクタリングなどの機能が無効になります。ログや生成されたデータなどのファイルをファイルの種類別に除外することもできます。
に移動し、 無視するファイルとフォルダー タブに切り替えます。
無視されるファイルタイプのリストに新しい拡張機能 (
) を追加します:

変更を適用し、ダイアログを閉じます。
より小さな CMake サブプロジェクトを操作する
解析されるファイルのスコープは、ロードされた CMake スクリプトによって決まります。 プロジェクトが複数のサブディレクトリに分割され、それぞれに自己完結型 CMakeLists.txt が含まれている場合は、より小さいサブプロジェクトを個別に読み込むことができます (そのためには、sub-CMakeLists.txt で CMake プロジェクトを読み込む を実行します)。

大規模なプロジェクトの一部のみを探索する必要がある場合の別の方法として、 compilation database を作成し、目的の部分に絞り込み、その後 CLion でプロジェクトとして開きます。
_CLION_IDE__ マクロを使用して、重い解析を排除する
複雑なプリプロセッサーマクロの解析中に IDE のフリーズが発生する場合があります。 このような問題のある定義をコードから削除するには、 __CLION_IDE__ (または __JETBRAINS_IDE__ )マクロを使用してダミーの定義に置き換えます。

このマクロは解析のみに影響し、コードをビルドまたは実行するときは未定義です。
不要なプラグインを無効にする
IDE のパフォーマンスを向上させるには、不要な プラグイン を無効化してみてください。 後でいつでも再びオンにすることができます。
例えば、特定の テストフレームワーク を使用している場合は、CLion でサポートされている他のテストフレームワーク向けプラグインを無効化することを検討してください。
に進みます。
インストール済み タブを閲覧し、不要なプラグインを無効化します:

のメニューから、手動でインストールしたすべてのプラグイン(バンドルされていないプラグイン)を一度に無効にすることもできます。

パフォーマンスの問題を報告する
IDE がフリーズしたり、CPU やメモリの使用率が高かったりして、上記のヒントを試しても改善しない場合は、IDE ログ、スレッドダンプ、パフォーマンススナップショットをご提供ください。 これらの情報の収集と送信方法の詳細については、 こちらの手順を参照してください。