t/perf/fsmonitor: add benchmark for dirty status

This benchmark covers the git status time for a heavily
dirty directory - benchmarking fsmonitor's refresh

When running to compare our perl vs rs-git-fsmonitor - we see that
the perl script incurs significant overhead - further motivation
to provide a faster implementation within git.

7519.7: status (dirty) (fsmonitor=query-watchman) 10.05(7.78+1.56)
7519.20: status (dirty) (fsmonitor=rs-git-fsmonitor) 6.72(4.37+1.64)
7519.33: status (dirty) (fsmonitor=disabled) 5.62(4.24+2.03)

Signed-off-by: Nipunn Koorapati <nipunn@dropbox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nipunn Koorapati 2020-10-26 19:32:53 +00:00 committed by Junio C Hamano
parent a948864ae7
commit 1c6833c800

View file

@ -165,6 +165,11 @@ test_fsmonitor_suite() {
git status -uall
'
test_perf_w_drop_caches "status (dirty) ($DESC)" '
git ls-files | head -100000 | xargs -d "\n" touch -h &&
git status
'
test_perf_w_drop_caches "diff ($DESC)" '
git diff
'