git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 10/10] t/perf/fsmonitor: add benchmark for dirty status

From
Nipunn Koorapati via GitGitGadget <gitgitgadget@gmail.com>
Date
Oct 26, 2020, 19:32 UTC
Message-ID
<e5b0eee172b1186e39b5f9cdb649185b5b91253d.1603740773.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.772.git.1603740773.gitgitgadget@gmail.com>
From: Nipunn Koorapati <nipunn@dropbox.com>

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>
---
 t/perf/p7519-fsmonitor.sh | 5 +++++
 1 file changed, 5 insertions(+)
diff --git a/t/perf/p7519-fsmonitor.sh b/t/perf/p7519-fsmonitor.sh
index 577f79d455..163a13bea3 100755
--- a/t/perf/p7519-fsmonitor.sh
+++ b/t/perf/p7519-fsmonitor.sh
@@ -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
 	'
-- 
gitgitgadget
Previous: Nipunn Koorapati via GitGitGadgetNext: Nipunn Koorapati via GitGitGadget
Message 8 of 13 in “Update fsmonitor perf suite to support integration comparisons”
  1. 00/10 Update fsmonitor perf suite to support integration comparisonsNipunn Koorapati via GitGitGadget, Oct 26, 2020
  2. 03/10 t/perf/fsmonitor: improve error message if typoing hook nameNipunn Koorapati via GitGitGadget, Oct 26, 2020
  3. Junio C HamanoOct 26, 2020
  4. Nipunn KoorapatiOct 26, 2020
  5. 06/10 t/perf/fsmonitor: silence initial git commitNipunn Koorapati via GitGitGadget, Oct 26, 2020
  6. 07/10 t/perf/fsmonitor: factor setup for fsmonitor into functionNipunn Koorapati via GitGitGadget, Oct 26, 2020
  7. 08/10 t/perf/fsmonitor: initialize test with git resetNipunn Koorapati via GitGitGadget, Oct 26, 2020
  8. 10/10 t/perf/fsmonitor: add benchmark for dirty statusNipunn Koorapati via GitGitGadget, Oct 26, 2020
  9. 09/10 t/perf/fsmonitor: perf comparison of multiple fsmonitor integrationsNipunn Koorapati via GitGitGadget, Oct 26, 2020
  10. 02/10 t/perf/fsmonitor: move watchman setup to one-time-repo-setupNipunn Koorapati via GitGitGadget, Oct 26, 2020
  11. 05/10 t/perf/fsmonitor: shorten DESC to basenameNipunn Koorapati via GitGitGadget, Oct 26, 2020
  12. 04/10 t/perf/fsmonitor: factor description out for readabilityNipunn Koorapati via GitGitGadget, Oct 26, 2020
  13. 01/10 t/perf/fsmonitor: separate one time repo initializationNipunn Koorapati via GitGitGadget, Oct 26, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.