CLion 2019.3ヘルプ

パフォーマンスチューニングのヒント

この記事では、大規模プロジェクトでCLionのパフォーマンスを向上させるために使用できる有用な手法の概要を説明します。

メモリヒープを増やす

メモリインジケータを有効にする

  • パフォーマンスの低下がヒープメモリの不足によって引き起こされているかどうかを確認するには、設定/環境設定 | 外観 & 振る舞い | 外観メモリー・インジケーターを表示するオプションを有効にします。デフォルトでは、JVMとClangdの両方のメモリインジケータが右下隅に表示されます。

    memory indicators

-Xmxを調整する

メモリヒープを増やすには、対応するJVMオプション -Xmxを変更します。

  1. ヘルプ | カスタム VM オプションの編集に移動します。このアクションにより、IDEの構成ディレクトリーに .vmoptions ファイルのコピーが作成され、エディターで開きます。

  2. -Xmx をより高い値に設定します。例:デフォルトの2 GBではなく、4 GBの値の -Xmx4096m

  3. CLionを再起動してください。

CLionは、空きヒープメモリの量が最大ヒープサイズの5%未満の場合も警告します。

low memory warning message

構成をクリックして、メモリー設定ダイアログで -Xmx を編集します。

change Xmx in Memory Settings

コード分析をスピードアップ

インスペクションのリストをフィルタリングする

オンザフライのコード分析は、CLionで最もパフォーマンスを消費するプロセスの1つです。軽量化するには、設定/環境設定 | エディター | インスペクションのインスペクションのリストを短くします(インスペクションを無効化および抑止する他の方法を参照してください)。

特に、データ・フロー分析グループと一般 | 簡略化可能なステートメント インスペクションを無効にすることを検討してください。

disable performance-consuming inspections

コード | コードのインスペクションコマンドを使用してオンデマンドでインスペクションを常に実行し、エディターに影響を与えることなく、別のツールウィンドウで結果を調べることができます。また、コミットする前にオプションを設定することにより、コミットするまでコード分析(およびオンザフライのリファクタリング)を延期できます。

ファイルの分析を調整する

現在開いているファイルのコード分析のレベルを変更するには、ステータスバーのHectorアイコン the Hector icon をクリックするか、コード | 現在のファイルの分析を構成 Ctrl+Shift+Alt+Hを実行します。

Hector the Inspector popup

スライダーを使用可能な位置のいずれかに移動します。

  • ハイライトを完全にオフにするなし。

  • 構文は構文の問題のみを表示します。

  • インスペクション(デフォルト)。構文の課題とインスペクションの課題を表示します。

省電力モードの切り替え

個別のチェックまたはファイルを1つずつ構成する代わりに、省電力モードを試してください。IDE全体のすべてのインスペクションおよびその他の非常に消費の多いバックグラウンドタスクを無効にします。

省電力モードを有効にするには、Hectorポップアップで対応するチェックボックスを設定するか(上のスクリーンショットを参照)、ファイル | 省電力モードを呼び出します。

Clangdベースのエンジンを確認する

CLionには、デフォルトで有効になっている補完的なClangdベースの言語エンジンが組み込まれています。現在、エラー/警告の注釈、特定のナビゲーションタスク、ClangFormatを使用したコードの書式設定、およびクイック修正によるコードの強調表示で機能します。

ほとんどの場合、Clangdベースのエンジンは組み込みのエンジンよりも高速に動作します(そして、より正確な結果を提供することもあります)。ただし、すべての操作に使用されるわけではありません。例:Clangdはクイックフィックスの場所を提供しますが、フィックス自体はCLionのエンジンによって実行されます。または、使用箇所の検索はClangdを使用して、エディターで現在開かれているファイルおよびCLionの独自のエンジンを検索し、他のすべての用途に使用します。

パフォーマンスの課題を調査するときは、Clangdエンジンの仕様を考慮することをお勧めします。設定/環境設定 | 言語 & フレームワーク | C/C++ | Clangdを使用して、エンジン設定を実験し、特定のタスクのパフォーマンスに影響するかどうかを確認します。

インデックス作成をスピードアップ

ディレクトリーとファイルの種類を除外する

デフォルトでは、CLionは、正しい解決のために、CMakeLists.txt にリストされているすべてのディレクトリー(ソースおよび include_directories パス)に索引を付けます。一方、プロジェクトには、CLionのコードインサイトに影響しないバイナリ、ログ、またはビルドアーティファクトを含むフォルダーが含まれる場合があります。また、一部のフォルダーのインデックス作成は、サイズや場所が原因で高すぎる場合があります。そのため、このようなフォルダーを手動で除外するのが合理的です。プロジェクトツリーでディレクトリーを右クリックし、としてディレクトリーをマーク.. |除外されましたを選択します。

mark directory as excluded

CLionの除外ファイルのシンボルは未完成のままなので、そのようなファイルでは次の機能は使用できません:コード補完および自動インポート(除外ディレクトリーが CMakeLists.txtinclude_directories でマークされている場合を除く)、コード生成、パスで検索(現在開いているファイルの範囲を除く)、ナビゲーション、およびリファクタリング。

ログや生成されたデータなどのファイルをインデックスから除外する別の方法は、設定/環境設定 | エディター | ファイル・タイプでファイルタイプ別に除外することです。

ignored files types

より小さなCMakeサブプロジェクトで作業する

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

load CMake sub-projects

大きなプロジェクトの一部のみを探索する必要がある場合の別の方法は、compilation databaseを作成し、それを目的の部分に減らしてから、CLionでプロジェクトとして開くことです。

_CLION_IDE__マクロを使用して、重い解析を排除する

複雑なプリプロセッサマクロの解析中にIDEがフリーズすることがあります。このような問題のある定義をコードから除去するには、__CLION_IDE__ マクロを使用して、いくつかのダミーの定義に置き換えます。

CLion IDE macro

このマクロは解析のみに影響し、コードをビルドまたは実行するときは未定義です。

パフォーマンスの問題を報告する

IDEがフリーズするか、CPU /メモリの使用率が高くなり、上記のヒントが役に立たない場合は、IDEログ、スレッドダンプ、スナップショットを提供してください。取得および送信する方法の詳細については、この手順(英語)を参照してください。

最終更新日: 2019年12月6日

関連ページ:

インスペクションを有効/無効にしない

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

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ラーニングセンターで特定の用語を検索します。オンラインヘルプを表示する...