Copilot CLIのC++解析がコードベース全体を索引化、定義や参照を待ちにくく
掲載 確認 出典・確認情報
大きなC++リポジトリでは、定義や参照を探すたびにプロジェクト情報をたどり直すことが待ち時間につながります。Copilot CLIはコードベース全体のシンボル索引を保持して再利用するようになり、同じ情報を毎回探し直す負担を減らしました。
プロジェクト全体の情報を使い回せるようになった
C++では、一つのシンボルを理解するだけでも複数のソースファイルやヘッダーファイルをまたぐことがあります。必要な情報を検索のたびにたどり直すと、リポジトリが大きいほど定義や参照へ移る待ち時間が増えます。
今回のコードベース全体の索引化(whole codebase indexing)は、Microsoft C++ Language Serverがコンパイル情報を使って解決した型、シンボル、ヘッダーファイルの取り込み関係、ファイル間の関係を永続的な索引として保持します。今開いていないファイルの情報も含まれるため、同じプロジェクト内で定義・参照・実装・シンボル検索を繰り返すときに再利用できます。
初回だけは索引を作る時間とメモリを見込む
コードベース全体の索引化は既定で有効です。最初にC++プロジェクトを開いたときは索引を作るため、追加の時間がかかり、大規模または複雑なリポジトリでは一時的にメモリ使用量が増える場合があります。
索引が完成した後は再利用され、プロジェクトの変更に合わせて更新されます。初回の負荷と、その後の検索待ちの削減を分けて考える必要があります。
索引の進み具合は/lsp logsで確認できます。負荷が合わない環境ではコードベース全体の索引化を無効にすることもでき、設定変更後はCopilotのセッションを再起動する必要があります。
確認範囲
この記事は2026年9月22日のGitHub公式更新情報に記載されたC++解析の動作と制約を整理しています。大規模リポジトリでの速度やメモリ使用量を独自に計測したものではありません。