前書き
chromeブラウザの動作確認のためchromiumをビルドしてデバッグをする必要がありましたので、
Visual Studio上でビルドとデバッグをするための手順を備忘録として残しておきます。
基本的には 公式の手順 をChat GPTによって翻訳したものになります。説明が不足している箇所は「補足」として書き足しています。
Windowsのセットアップ
Visual Studio
ChromiumのビルドにはVisual Studio 2022 (>=17.0.0)が必要です。また、Visual Studioを使用してChromiumをデバッグすることも可能です。ビルドにはclang-cl
コンパイラを使用しますが、Visual Studioのヘッダーファイル、ライブラリ、一部のツールが必要です。
Visual Studio Community Editionも使用できますが、ライセンス条件が適切であることを確認してください。以下のコンポーネントをインストールする必要があります:
- “Desktop development with C++”
- “MFC/ATL support”
これらは、Visual Studioインストーラーに以下の引数を渡すことでコマンドラインからインストールできます(ARM64の手順は後述)。
|
|
Visual Studioの補足
コマンドラインだとなんのこっちゃってなる方が多いと思うので、GUIのインストーラーでは「デスクトップとモバイル」の「C++ によるデスクトップ開発」にチェックを入れて、
右側の「インストールの詳細」の「最新 v143 ビルド ツールの C++ MFC (x86 & x64)」にチェックを入れてインストールすればOKです。
「Microsoft.VisualStudio.Workload.NativeDesktop」が「C++ によるデスクトップ開発」、
「最新 v143 ビルド ツールの C++ MFC (x86 & x64)」が「Microsoft.VisualStudio.Component.VC.ATLMFC」ということになります。
ARM64 Win32向けのビルド
ARM64 Win32向けにビルドする場合は、以下の追加引数が必要です。
|
|
ARM64 Win32向けのビルドの補足
ARM向けのコンポーネントは右側の「インストールの詳細」には表示されないため、上部の「個別のコンポーネント」タブをクリックします。
「コンポーネントを検索する」のテキストボックスに「ARM64/ARM64EC」と入力します。
「最新 v143 ビルド ツール用 C++ MFC (ARM64/ARM64EC)」が「Microsoft.VisualStudio.Component.VC.MFC.ARM64」、
「MSVC v143 - VS 2022 C++ ARM64/ARM64EC ビルド ツール (最新)」が「Microsoft.VisualStudio.Component.VC.Tools.ARM64」になりますのでチェックを入れます。
(※「最新 v143 ビルド ツール用 C++ ATL (ARM64/ARM64EC)」はMFCのコンポーネントに必須のため自動的にチェックが入ります)
インストールを実行
必要なコンポーネントにチェックを付けたら「インストール」(または「変更」)を実行しましょう。
結構時間がかかるので気長に待ちます。
必要条件
Windows 11 SDK (バージョン10.0.22621.2428)
個別にインストールするか、Visual Studioインストーラーで適切なボックスをチェックしてください。
Windows 11 SDKの補足
「C++ によるデスクトップ開発」を選択した時点でチェックがついているはずなので気にしなくていいです。
SDKデバッグツール (バージョン10.0.22621.755以上)
Chromeが4 GiBを超えるPDBをサポートするために、大ページPDBを読み取るデバッグツールが必要です。これをインストールするには、該当するWindows SDKバージョンをインストール後、以下を行います:
1. コントロールパネル -> プログラムと機能 -> Windows Software Development Kit [バージョン]
2. 変更 -> Debugging Tools for Windows
SDKデバッグツールの補足
「Debugging Tools for Windows」を有効にするには下記を実施してください。
コントロールパネルを起動
プログラムを選択
プログラムと機能を選択
「プログラムと機能の検索」テキストボックスに「Windows Software Development Kit」と入力
複数出てきたら、「インストール日」が最新のものを選択
選択後上部の「変更」をクリック
「Change」を選択後「Next」をクリック
「Debugging Tools for Windows」にチェックを入れて「Change」をクリック
しばらく待ちます。(そんなに時間はかかりません)
下記画面が表示されれば変更完了です。
ARM64 Windowsでのデバッグツール
ARM64 Windowsでビルドする場合、他のマシンからDebuggers\x64
ディレクトリを手動でコピーする必要があります。このディレクトリはARM64にはインストールされず、Chromiumをx64またはARM64向けにビルドする際に必要です。
注意事項
- 古いバージョンのWindows (1909以前) では、
dawn
または関連コンポーネントが26100 SDK使用時にD3d関連エラーを引き起こす可能性があります。- 原因: 新しいSDKに含まれる
d3dcompiler_47.dll
が、古いシステムにデフォルトで存在しないバージョンのUniversal C Runtime (UCRT) を動的リンクするためです。 - 解決方法:
- システムのUCRTを更新する
- 22612 SDKをインストールし、そこに含まれる静的リンクされた
d3dcompiler_47.dll
を使用する
- 原因: 新しいSDKに含まれる
この問題は、__CxxFrameHandler4
を読み込めないDLLエラーとしても現れる可能性があります。
gitのインストール
gitをインストールする
まだgitを直接インストールしていない場合は、Gitの公式サイト から、最新バージョンのGit for Windows用スタンドアロンインストーラーをダウンロードできます。
Git for Windowsに関する詳細情報は、こちら をご覧ください。
gitを更新する
注記: このセクションは、gitを直接インストールしている場合に適用されます。depot_tools
が近い将来gitをバンドルしなくなるためです。
現在インストールされているgitのバージョンによって、最新バージョンへの更新方法が異なります。まず、gitのバージョンを確認します。cmd.exeシェルで次のコマンドを実行してください:
|
|
バージョン別の更新方法
現在のバージョン | 更新方法 |
---|---|
2.14.1以前 | Gitを手動でアンインストールし、上記のインストール手順に従って再インストールしてください。 |
2.14.2 ~ 2.16.1 | cmd.exeシェルで以下のコマンドを実行してください: git update |
2.16.1(2)以降 | cmd.exeシェルで以下のコマンドを実行してください: git update-git-for-windows |
depot_toolsのインストール
depot_tools
は、Googleが作った ソースコード管理とビルド補助ツールのセット です。
主な使い道:
- Googleの大規模プロジェクト(例: Chrome、V8、WebRTC)のコードをダウンロード、管理、ビルドする。
- 依存ライブラリを自動でまとめて取ってきたり、設定したりする。
ざっくり言うとGoogle製プロジェクトを簡単に触れるようにする便利ツール箱です。
注意:
2024年9月23日以降、depot_tools
にはGit for Windowsが同梱されなくなります。この変更に備えて、それ以前にGitを直接インストールしてください。
1. depot_toolsのダウンロードと解凍
- depot_tools
バンドルをダウンロードし、任意の場所に解凍します(例:
C:\src\depot_tools
)。 - 注意: エクスプローラーでドラッグ&ドロップやコピー&ペーストで解凍しないでください。これでは隠しフォルダー「
.git
」が解凍されず、depot_tools
の自動更新ができなくなります。ただし、コンテキストメニューの「すべて展開」を使用することは可能です。
2. PATHに depot_tools を追加
PATH
環境変数の先頭にdepot_tools
を追加します(Pythonのインストールパスより前に配置する必要があります)。- 手順:
C:\src\depot_tools
に解凍した場合:
コントロールパネル → システムとセキュリティ → システムを開く。
Win + R キーを押して「ファイル名を指定して実行」を開きます。
「SystemPropertiesAdvanced」を入力し、「OK」をクリックします。- PATH変数の編集:
- 管理者権限がある場合:
システムの詳細設定 → 環境変数 → システム変数セクションのPath
を選択して編集します。 - 管理者権限がない場合:
「アカウントの環境変数を編集」を検索して開き、ユーザー変数
セクションのPath
を選択して編集します。
- 管理者権限がある場合:
Path
に以下を追加:
C:\src\depot_tools
を先頭(またはPythonがインストールされているディレクトリより前)に追加します。
注意: ユーザーレベルのPATH
しか変更できず、システムPATH
にPythonが含まれる場合、競合が発生する可能性があります。
3. DEPOT_TOOLS_WIN_TOOLCHAIN環境変数を追加
- 同じ方法で環境変数
DEPOT_TOOLS_WIN_TOOLCHAIN
を追加し、値を0
に設定します。これにより、depot_tools
がローカルにインストールされたVisual Studioを使用するようになります(デフォルトではGoogle内部のバージョンを使用しようとします)。
4. Visual Studio 2022のパスを設定
-
必要に応じて、環境変数
vs2022_install
をVisual Studio 2022のインストールパスに設定します。例:1
set vs2022_install=C:\Program Files\Microsoft Visual Studio\2022\Community
5. gclientの実行
cmd.exeシェルで次のコマンドを実行します:
|
|
- 初回実行時に、コードの作業に必要なWindows固有のツール(
msysgit
やpython
など)がインストールされます。 - 注意:
cmd.exe
以外のシェル(例: CygwinやPowerShell)から実行すると、一見正しく動作しているように見えても、msysgit
やpython
などが正しくインストールされない場合があります。 - 初回実行時にファイルシステムで奇妙なエラーが発生する場合は、Windowsインデックスサービスを無効にすることを検討してください。
Pythonのインストール確認
gclient
を実行後、コマンドプロンプトで次のコマンドを入力し、確認します:
|
|
- 結果に表示される
python3.bat
(depot_tools
に含まれるもの)が、他のpython3.exe
よりも優先されていることを確認してください。これを怠ると、gn
使用時に過剰なビルドが発生する可能性があります(詳細はcrbug.com/611087 を参照)。
下記のようにpython3.bat
が一番上に表示されていることを確認してください。
|
|
アプリ実行エイリアス(App Execution Aliases)の無効化
- システム上の他のPythonインストールと競合する可能性があるため、アプリ実行エイリアス(App Execution Aliases)を無効化します。
- 手順:
- コントロールパネル → アプリ実行エイリアス(App Execution Aliases)を開く。
python.exe
およびpython3.exe
のチェックボックスをオフにします(App Installer
を指しているもの)。
アプリ実行エイリアス(App Execution Aliases)の無効化の補足
python.exe
およびpython3.exe
のアプリ実行エイリアスをオフにする手順は下記を実施してください。
Windowsの設定を開く
アプリを押下し「アプリの詳細設定」を開く
アプリ実行エイリアスを開く
一覧からpython.exe
およびpython3.exe
を探してチェックボックスをオフにします。
私の環境では存在しませんでした。
コードの取得
1. Gitの設定
まず、Gitを以下のように設定します:
|
|
- 必須ではありませんが、Windowsの
MAX_PATH
制限を超えた長いパスのサポートを有効にすることをお勧めします:
|
|
2. チェックアウト用のディレクトリ作成
Chromiumのコードをチェックアウトするためのディレクトリを作成し、その中に移動します。このディレクトリ名は自由に決められますが、パスにスペースが含まれないようにしてください。
Google社員の場合は、C:\src\
配下に配置するとパフォーマンスの向上が期待できます(詳しくは「Why is my build slow?」を参照)。
|
|
3. コードと依存関係の取得
depot_tools
のfetch
ツールを使用してコードと依存関係をチェックアウトします:
|
|
- 注意: 履歴全体を取得したくない場合、
--no-history
フラグを付けることで時間を大幅に短縮できます:
|
|
-
所要時間: 高速なインターネット接続でも1時間以上かかり、低速な接続ではさらに時間がかかることがあります。取得中にPCがスリープまたは休止状態になるとエラーが発生する可能性があるため、スリープを無効にしてください。
-
エラーが発生した場合:
サブリポジトリの取得中にエラーが発生した場合、以下の手順で対応できます:- 再試行する。
- または、
chromium/src
ディレクトリに移動して次のコマンドを実行する:
|
|
python関連のエラーが発生した場合
python関連のエラーが発生した場合は、たいていパスが通ってないケースがほとんどかと思います。
下記でちゃんとc:\src\depot_tools
にパスが通っているか改めて確認してみましょう。
|
|
4. チェックアウト後の構成
fetch
コマンドが完了すると、作業ディレクトリに隠しファイル.gclient
とsrc
ディレクトリが作成されます。以降の手順ではsrc
ディレクトリに移動していることを前提とします:
|
|
5. (オプション)APIキーのインストール
Googleサービスとやり取りするためにビルドにAPIキーをインストールすることもできます。ただし、ほとんどの開発やテストでは必要ありません。
ビルドのセットアップ
Chromiumは、主要なビルドツールとしてNinjaを使用し、.ninja
ファイルを生成するためにGNを併用します。異なる設定で任意の数のビルドディレクトリを作成できます。
ビルドディレクトリの作成
下記コマンドでc:\src\chromium\src
直下にビルドディレクトリを作成します。
|
|
- このコマンドは、新しいビルドディレクトリごとに一度だけ実行する必要があります。以降、Ninjaは必要に応じてビルドファイルを更新します。
- **
Default
**は任意の名前に置き換え可能ですが、必ずout
ディレクトリのサブディレクトリにする必要があります。 - リリース設定やVisual Studioの別バージョンを使用する場合などのビルド引数については、GNビルド設定 を参照してください。
- デフォルト設定は、現在のホストOSとCPUに一致するデバッグ用のコンポーネントビルドです。
- GNに関する詳細は、コマンドラインで
gn help
を実行するか、クイックスタートガイド を参照してください。
高速化のための工夫
-
ファイルシステムのオーバーヘッドを削減
- ビルドディレクトリをウイルス対策ソフトやインデックスソフトウェアの除外対象に設定します。
- ビルドツリーを高速ディスク(推奨: SSD)に保存します。
-
ハードウェアの最適化
- 多くのコア(20コア以上でも問題なし)と大量のRAM(64GB以上も推奨)が必要です。
-
GNフラグの活用
-
以下のフラグを使用することでビルド速度を向上できます。
フラグは、gn args out\Default
で表示されるエディターに入力するか、gn gen
コマンドの引数として指定します:1
gn gen out\Default --args="is_component_build = true is_debug = true"
-
有効な設定例:
is_component_build = true
小さなDLLを多く生成することで、chrome.dll
の再リンクを回避できる場合があります。enable_nacl = false
Native Clientを無効化(通常ローカルビルドでは不要)。target_cpu = "x86"
x86ビルドはx64ビルドより若干速くなる場合があります。ただし、enable_nacl = false
を設定しないとビルド時間が悪化する場合があります。blink_symbol_level = 0
Blinkのソースレベルデバッグを無効化してビルド時間を短縮(Blinkのデバッグを予定していない場合に適切)。v8_symbol_level = 0
V8のソースレベルデバッグを無効化してビルド時間を短縮(V8のデバッグを予定していない場合に適切)。symbol_level = 1
またはsymbol_level = 0
リンク速度を向上させる設定。symbol_level = 1
: ファイル名や行番号情報は残し、ローカル変数や型情報を省略(ソースレベルのデバッグは可能)。symbol_level = 0
: ソースレベルのデバッグを無効化するが、コールスタックに関数名は残る。
注意: この設定を変更するとすべてを再コンパイルする必要があります。
-
-
Ninjaのターゲット指定
ninja
を実行する際、chrome
をターゲットとして指定すると、テストバイナリ全体のビルドを回避できます。
SCCACHEの利用
-
SCCACHEを有効にすることでビルドプロセスを高速化できる可能性があります。以下の引数を設定してください:
1
cc_wrapper = "sccache" # SCCACHEの実行ファイルが%PATH%に含まれていることが前提
ビルドが遅い原因と対処法
ビルドが遅い原因
ビルドが遅くなる原因はさまざまですが、特にWindows Defenderによるプロセス起動の遅延がよく挙げられます。以下の点を確認してください:
- Chromiumの
src
ディレクトリ全体をウイルススキャンの対象外に設定していますか?- Googleの環境では、ドライブのルートディレクトリ(例:
C:\src
)に配置すると効果的です。
- Googleの環境では、ドライブのルートディレクトリ(例:
- 上記で説明した設定(リンク設定や
-j
オプションの値)を試しましたか? chromium-dev
メーリングリストで、マシンのスペックに対してビルドが遅いかどうかを確認しましたか?
Windows Defenderがビルドを遅くしていると疑われる場合、Microsoftが提供するPerformance Analyzer for Microsoft Defender Antivirus を使用して詳しく調査することができます。
データ収集の方法
-
NINJA_SUMMARIZE_BUILDの設定
- 環境変数
NINJA_SUMMARIZE_BUILD
を1
に設定すると、autoninja
が以下の情報を出力します:- 現在実行中のビルドプロセス数
- 完了したビルドステップの数
- 毎秒完了したビルドステップ数
- ビルドの実行時間
コマンド例:
1 2
$ set NINJA_SUMMARIZE_BUILD=1 $ autoninja -C out\Default base
出力例:
ninja: Entering directory `out\Default' [1 processes, 86/86 @ 2.7/s : 31.785s ] LINK(DLL) base.dll base.dll.lib base.dll.pdb
- これにより、プロセス作成の遅延が明確に分かり、ビルドが通常より遅いかどうかをすぐに判断できます。
- 環境変数
-
ビルド完了後のパフォーマンスサマリー
- 環境変数
NINJA_SUMMARIZE_BUILD=1
を設定すると、ビルド完了時に以下の情報が出力されます:- 最も遅いビルドステップ
- 各ビルドステップの種類別の合計時間
出力例:
Longest build steps: 0.1 weighted s to build obj/base/base/trace_log.obj (6.7 s elapsed time) Time by build-step type: 23.9 s weighted time to generate 770 .obj files (974.8 s elapsed time sum)
- “weighted"時間: ビルドステップの経過時間を並列実行中のタスク数で割った値。遅いステップの「重要度」を近似する指標です。
- 環境変数
-
手動でレポートを生成
- ビルド後に以下のスクリプトを使用してパフォーマンスレポートを生成できます:
1
$ python depot_tools\post_build_ninja_summary.py -C out\Default
- ビルド後に以下のスクリプトを使用してパフォーマンスレポートを生成できます:
Ninjaのオーバーヘッドの分析
NINJA_SUMMARIZE_BUILD=1
を設定すると、Ninjaが自身のオーバーヘッドをレポートするようになります。-d stats
フラグを使用して、プロセス作成が遅い原因(例: clang-clが除外ディレクトリ外で動作しているためのウイルス対策干渉)を調査できます。
コマンド例:
|
|
出力例:
metric count avg (us) total (ms)
StartEdge 88 3508.1 308.7
FinishCommand 87 1670.9 145.4
視覚的なパフォーマンスレポートの生成
Ninjaの.ninja_log
ファイルを.json
形式に変換し、Chromeのchrome://tracing
で読み込むことができます。
コマンド例:
|
|
build.json
ファイルをchrome://tracing
で開き、ビルドパフォーマンスを視覚化して分析します。
Chromiumのビルド
Chromiumのビルド方法
Chromium(chrome
ターゲット)をビルドするには、以下のコマンドを使用してNinjaでビルドします:
|
|
autoninja
は、Ninjaに渡される引数に最適な値を自動的に提供するラッパーツールです。
他のビルドターゲットの確認
- コマンドラインで以下を実行すると、GNから利用可能なすべてのビルドターゲットのリストを取得できます:
1
$ gn ls out\Default
- 任意のターゲットをビルドするには、NinjaにGNラベルを渡します(
//
を除く)。
例://chrome/test:unit_tests
をビルドする場合:1
$ autoninja -C out\Default chrome/test:unit_tests
単一ファイルのコンパイル
Ninjaには、特定のソースファイルを基に単一のオブジェクトファイルをコンパイルするための特殊な構文^
があります。
例:
|
|
これは、obj/base/base/logging.o
をコンパイルします。
- autoninjaを使用する場合:
^
の後に^
を追加して、末尾の^
を保持する必要があります:
|
|
- ヘッダーファイルにも対応:
- 例えば、
foo.h^^
で対応するfoo.o
をコンパイル可能です(存在する場合)。
- 例えば、
Bashスクリプトを使った簡略化
Bashシェルを使用している場合、以下のスクリプトで単一ファイルコンパイルの実行を簡略化できます:
スクリプト内容:
|
|
- このスクリプトは
src
ディレクトリで実行され、出力ディレクトリがout/Default
であることを前提としています。 - 指定されたすべてのファイルを
autoninja
でコンパイルします。
使い方:
- スクリプトをファイルとして保存し、実行可能にします。
$PATH
に配置し、例としてcompile
という名前を付けます。
例:
|
|
Chromiumの実行
ブラウザの起動
ビルドが完了したら、以下のコマンドでブラウザを実行できます:
|
|
- 注意: コマンドで「
.exe
」の拡張子を省略することも可能です。
テストターゲットの実行
テストターゲットの確認
テストは種類やディレクトリ構造に基づいて複数のターゲットに分かれています。特定のユニットテストやブラウザテストファイルがどのターゲットに対応しているかを確認するには、次のコマンドを使用します:
|
|
例:
|
|
この場合、対象のターゲットはunit_tests
です。
ユニットテストのビルド
以下のコマンドでunit_tests
バイナリをビルドします:
|
|
ユニットテストの実行
テストを実行するには、unit_tests
バイナリを起動します。特定のテストだけを実行する場合、--gtest_filter
引数を使用します:
例:
|
|
- 詳細は、GoogleTestのGitHubページ を参照してください。
インストーラーのビルド
インストーラーの作成
自己完結型のインストーラーを作成するには、mini_installer
ターゲットをビルドします。このインストーラーには、ブラウザを別のマシンにインストールするために必要なすべてのファイルが含まれています。
コマンド:
|
|
- 詳細は以下のREADMEファイルを参照してください:
//chrome/installer/setup/README.md
//chrome/installer/mini_installer/README.md
チェックアウトの更新
既存のチェックアウトを更新する方法
以下のコマンドを実行して、既存のチェックアウトを更新できます:
|
|
-
git rebase-update
- Chromiumのメインソースリポジトリを更新します。
- ローカルブランチを最新のツリートップ(
origin/main
)にリベースします。 - このスクリプトを使わない場合、
git pull
などの通常のGitコマンドでもリポジトリを更新できます。
-
gclient sync -D
- サブリポジトリを適切なバージョンに同期します。
- 不要になったサブリポジトリを削除し、必要に応じてフックを再実行します。
Visual Studio IDEでの編集とデバッグ
Chromiumの編集とデバッグにはVisual Studio IDEを使用できます。Intellisenseのサポートを利用するかどうかを選べます。
Visual Studio Intellisenseを使用する場合
Chromiumの開発でIntellisenseを利用するには、出力ディレクトリを生成する際にgn gen
に--ide
引数を付けます。
例:
- チェックアウトパス:
C:\src\chromium
- 出力ディレクトリ:
out\Default
|
|
- このコマンドはビルドディレクトリ内に
all.sln
ファイルを生成します。 - ビルドには内部的にNinjaを使用しますが、大半のIDE機能は利用可能です(ネイティブなVisual Studioのビルドモードはありません)。
- 再度
gn gen
を手動で実行する場合、--ide
引数を再指定する必要がありますが、通常GNは自動的にビルドファイルとIDEファイルを更新します。
プロジェクトの生成を制限する
- ソリューションファイルには数千のプロジェクトが含まれるため、ロードが非常に遅くなることがあります。
--filters
引数を使用して、必要なコードだけにプロジェクトファイルの生成を制限できます。
最小限のソリューション生成例:
|
|
-
必要に応じて他のディレクトリもフィルタに追加できます:
1
--filters=//chrome;//third_party/WebKit/*;//gpu/*
-
その他のオプションについては、以下のコマンドで確認できます:
1
$ gn help gen
Intellisenseを使用しない場合
Visual Studioのマルチプロジェクトソリューションファイルを使用せずにデバッグと開発を行うことも可能です。
-
バイナリの直接オープン
File -> Open -> Project/Solution
でchrome.exe
バイナリを直接開きます。- またはVisual Studioのコマンドプロンプトで以下を実行します:
1
$ devenv /debugexe out\Debug\chrome.exe <引数>
-
VsChromium
拡張機能の利用- Visual Studioの
VsChromium
拡張機能をインストールすることで、ソースコードをソリューションエクスプローラーに表示したり、コード検索などの便利な機能を利用できます。
- Visual Studioの
-
複数の実行可能ファイルの追加
File -> Add -> Existing Project...
で追加できます(例:base_unittests.exe
,browser_tests.exe
)。- デバッグ対象を変更するには、右クリックして
Set as Startup Project
を選択します。 - コマンドライン引数などのプロパティを変更するには、右クリックして
Properties
を選択します。
Chrome全体のデバッグ
- Visual Studioでは、デフォルトでメインのブラウザプロセスにのみデバッガがアタッチされます。
- Chrome全体をデバッグするには:
- Microsoft Child Process Debugging Power Toolをインストールします。
- Visual Studioを管理者として実行します(管理者権限がない場合、一部の子プロセスへのアタッチが失敗します)。
Gitコマンドのパフォーマンス改善
未追跡キャッシュを使用するようにGitを設定
未追跡キャッシュを有効にすると、git status
などのコマンドのパフォーマンスが向上する可能性があります。
-
未追跡キャッシュのテスト
次のコマンドを実行します:1
$ git update-index --test-untracked-cache
- 出力が
OK
で終わる場合、以下の設定でパフォーマンスを改善できます。
- 出力が
-
未追跡キャッシュの有効化
1
$ git config core.untrackedCache true
fsmonitorを使用するようにGitを設定
fsmonitor
を使用すると、Gitコマンドを大幅に高速化できます。特に、大規模なリポジトリ(例: Chromiumやv8)で有効にすることを推奨します。
-
注意:
fsmonitor
をグローバルに有効化すると、多くのプロセスが起動し、過剰なコミット/メモリ消費が発生する可能性があるため、リポジトリごとに有効化する方が適切です。
-
現在のリポジトリで
fsmonitor
を有効化するコマンド:1
$ git config core.fsmonitor true