Re: Some rough edges of core.fsmonitor
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Jan 27, 2018, 12:39 UTC
- Message-ID
- <CACsJy8CJtW3LZ+4Z_06uM4rJO88FXsNvcw+zzVqdFpsQUKrvrg@mail.gmail.com>
- In-Reply-To
- <87bmhfwmqa.fsf@evledraar.gmail.com>
On Sat, Jan 27, 2018 at 6:43 PM, Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
Show 16 quoted lines
> a) no fsmonitor > > $ time GIT_TRACE_PERFORMANCE=1 ~/g/git/git-status > 12:32:44.947651 read-cache.c:1890 performance: 0.053153609 s: read cache .git/index > 12:32:44.967943 preload-index.c:112 performance: 0.020161093 s: preload index > 12:32:44.974217 read-cache.c:1446 performance: 0.006230611 s: refresh index > > ... > > b) with fsmonitor > > $ time GIT_TRACE_PERFORMANCE=1 ~/g/git/git-status > 12:34:23.833625 read-cache.c:1890 performance: 0.049485685 s: read cache .git/index > 12:34:23.838622 preload-index.c:112 performance: 0.001221197 s: preload index > 12:34:23.858723 fsmonitor.c:170 performance: 0.020059647 s: fsmonitor process '.git/hooks/fsmonitor-watchman' > 12:34:23.871532 read-cache.c:1446 performance: 0.032870818 s: refresh index
Hmm.. why does refresh take longer with fsmonitor/watchman? With the help from watchman, we know what files are modified. We don't need manual stat()'ing and this line should be lower than the "no fsmonitor" case, which is 0.006230611s.
> 12:34:23.876427 diff-lib.c:250 performance: 0.004731427 s: diff-files > 12:34:23.880669 diff-lib.c:527 performance: 0.003944422 s: diff-index > 12:34:23.899225 dir.c:2290 performance: 0.018509066 s: read directory > 12:34:23.901914 trace.c:417 performance: 0.118250995 s: git command: '/home/aearnfjord/g/git/git-status'
I don't see any "write index" line here, which is interesting since your case c) is about "don't write index".
> c) with fsmonitor + don't write index
-- Duy