パフォーマンスチューニングのヒント
この記事では、大規模プロジェクトでCLionのパフォーマンスを向上させるために使用できる有用な手法の概要を説明します。
メモリヒープを増やす
メモリインジケータを有効にする
パフォーマンスの低下がヒープメモリの不足によって引き起こされているかどうかを確認するには、メモリー・インジケーターを表示するオプションを有効にします。デフォルトでは、JVMとClangdの両方のメモリインジケータが右下隅に表示されます。
で
-Xmxを調整する
メモリヒープを増やすには、対応するJVMオプション -Xmx
を変更します。
.vmoptions ファイルのコピーが作成され、エディターで開きます。
に移動します。このアクションにより、IDEの構成ディレクトリーに-Xmx
をより高い値に設定します。例:デフォルトの2 GBではなく、4 GBの値の-Xmx4096m
。CLionを再起動してください。
CLionは、空きヒープメモリの量が最大ヒープサイズの5%未満の場合も警告します。
構成をクリックして、メモリー設定ダイアログで -Xmx
を編集します。
コード分析をスピードアップ
インスペクションのリストをフィルタリングする
オンザフライのコード分析は、CLionで最もパフォーマンスを消費するプロセスの1つです。軽量化するには、他の方法を参照してください)。
のインスペクションのリストを短くします(インスペクションを無効化および抑止する特に、データ・フロー分析グループと一般 | 簡略化可能なステートメント インスペクションを無効にすることを検討してください。

コミットする前にオプションを設定することにより、コミットするまでコード分析(およびオンザフライのリファクタリング)を延期できます。
コマンドを使用してオンデマンドでインスペクションを常に実行し、エディターに影響を与えることなく、別のツールウィンドウで結果を調べることができます。また、ファイルの分析を調整する
現在開いているファイルのコード分析のレベルを変更するには、ステータスバーのHectorアイコン をクリックするか、 Ctrl+Shift+Alt+Hを実行します。
スライダーを使用可能な位置のいずれかに移動します。
ハイライトを完全にオフにするなし。
構文は構文の問題のみを表示します。
インスペクション(デフォルト)。構文の課題とインスペクションの課題を表示します。
省電力モードの切り替え
個別のチェックまたはファイルを1つずつ構成する代わりに、省電力モードを試してください。IDE全体のすべてのインスペクションおよびその他の非常に消費の多いバックグラウンドタスクを無効にします。
省電力モードを有効にするには、Hectorポップアップで対応するチェックボックスを設定するか(上のスクリーンショットを参照)、 を呼び出します。
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__
マクロを使用して、いくつかのダミーの定義に置き換えます。
このマクロは解析のみに影響し、コードをビルドまたは実行するときは未定義です。
パフォーマンスの問題を報告する
IDEがフリーズするか、CPU /メモリの使用率が高くなり、上記のヒントが役に立たない場合は、IDEログ、スレッドダンプ、スナップショットを提供してください。取得および送信する方法の詳細については、この手順(英語)を参照してください。
関連ページ:

インスペクションを有効/無効にしない
興味のない問題についてインスペクションが報告していると思われる場合は、そのようなインスペクションを無効にすることができます。インスペクションを無効にすると、現在のインスペクションプロファイルでは無効になります。他のすべてのプロファイルでは、有効のままです。インスペクションを無効/有効にする方法はいく...

Clangd
WindowsとLinux用のmacOS用Clangdは、追加のC++言語エンジンとしてCLionで使用されます(C++規格準拠を参照)。このダイアログを使用してClangdサーバー全体を有効/無効にし、特定の設定を構成します。clangdサーバーを有効にするこのオプションはClangdエンジン全体...

代替フォーマッタとしてのClangFormat
ClangFormatは、チームメンバーとIDE間で共通のコードスタイルを維持するのに役立つ一般的なコードフォーマットツールです。それは.clang-formatまたは_clang-formatという名前の特別なYAMLファイルにフォーマット設定を保存するオプションを提供します。CLionでは、組み...

Compilation Database
CMakeやGradle以外のプロジェクトでも、CLionが提供する高度なIDE機能の恩恵を受けることができます。1つの方法は、非CMakeプロジェクトをインポートしてCLionにそれを単純なCMake構造に変換させることです。もう1つの選択肢は、compilation databaseを読み込んで...

アイコンおよびシンボル
CLionで作業している間は、UIの周囲にさまざまなアイコンがあります。ほとんどの場合、アイコンの上にマウスを置くとツールチップの説明が表示されます。この記事では、ツールチップに付属していないアイコンの概要を説明します。このようなアイコンは、次のUI領域に属します。プロジェクト・ビュー、構造ビュー、...

ヘルプの利用
CLionに関する最も重要な情報源は、このオンラインヘルプです。アクセスするには、次のいずれかを実行します。メインメニューからを選択します。キーボードの を押します。ダイアログまたはツールウィンドウでをクリックします。CLionラーニングセンターで特定の用語を検索します。オンラインヘルプを表示する...