0

Clarify fsmonitor instructions

This change removes references to git versions since Chromium developers
should be using git from depot_tools, and since it isn't completely
clear whether 2.39 is greater or lower than 2.8.

This change also makes it clear that fsmonitor should be enabled on a
per-repo basis rather than globally, for the best cost/benefit ratio.

This change was inspired by the realization that enabling fsmonitor
globally on Windows caused 179 fsmonitor process to be spawned when
"gclient sync" was run. These processes commit an average of 86 MB
on Windows leading to 15 GB of commit (only a few hundred MB of
physical memory is used, but the commit usage is large enough to
matter).

Change-Id: I21c042462022088e11883bbf827276ee585fdaf3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4622567
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1159338}
This commit is contained in:
Bruce Dawson
2023-06-17 22:24:29 +00:00
committed by Chromium LUCI CQ
parent 6619b3a63a
commit 2154274a2a
3 changed files with 16 additions and 27 deletions

@ -462,7 +462,7 @@ Or edit the file directly.
#### Configure git to use an untracked cache
If `git --version` reports 2.8 or higher, try running
Try running
```shell
$ git update-index --test-untracked-cache
@ -475,16 +475,12 @@ If the output ends with `OK`, then the following may also improve performance of
$ git config core.untrackedCache true
```
If `git --version` reports 2.6 or higher, but below 2.8, you can instead run
```shell
$ git update-index --untracked-cache
```
#### Configure git to use fsmonitor
If `git --version` reports 2.37 or higher, use fsmonitor, which will
significantly speed git:
You can significantly speed up git by using [fsmonitor.](https://github.blog/2022-06-29-improve-git-monorepo-performance-with-a-file-system-monitor/)
You should enable fsmonitor in large repos, such as Chromium and v8. Enabling
it globally will launch many processes and probably isn't worthwhile. The
command to enable fsmonitor in the current repo is:
```shell
$ git config core.fsmonitor true

@ -329,7 +329,7 @@ Or edit the file directly.
#### Configure git to use an untracked cache
If `git --version` reports 2.8 or higher, try running
Try running
```shell
$ git update-index --test-untracked-cache
@ -342,16 +342,12 @@ If the output ends with `OK`, then the following may also improve performance of
$ git config core.untrackedCache true
```
If `git --version` reports 2.6 or higher, but below 2.8, you can instead run
```shell
$ git update-index --untracked-cache
```
#### Configure git to use fsmonitor
If `git --version` reports 2.37 or higher, use fsmonitor, which will
significantly speed git:
You can significantly speed up git by using [fsmonitor.](https://github.blog/2022-06-29-improve-git-monorepo-performance-with-a-file-system-monitor/)
You should enable fsmonitor in large repos, such as Chromium and v8. Enabling
it globally will launch many processes and probably isn't worthwhile. The
command to enable fsmonitor in the current repo is:
```shell
$ git config core.fsmonitor true

@ -492,7 +492,7 @@ fail to attach to some of Chrome's child processes.
#### Configure git to use an untracked cache
If `git --version` reports 2.8 or higher, try running
Try running
```shell
$ git update-index --test-untracked-cache
@ -505,16 +505,13 @@ If the output ends with `OK`, then the following may also improve performance of
$ git config core.untrackedCache true
```
If `git --version` reports 2.6 or higher, but below 2.8, you can instead run
```shell
$ git update-index --untracked-cache
```
#### Configure git to use fsmonitor
If `git --version` reports 2.37 or higher, use fsmonitor, which will
significantly speed git:
You can significantly speed up git by using [fsmonitor.](https://github.blog/2022-06-29-improve-git-monorepo-performance-with-a-file-system-monitor/)
You should enable fsmonitor in large repos, such as Chromium and v8. Enabling
it globally will launch many processes and consume excess commit/memory and
probably isn't worthwhile. The command to enable fsmonitor in the current repo
is:
```shell
$ git config core.fsmonitor true