grit://cooking/bench/stash/pop-sparse@wide-120k
← cookingall benchmarksraw data

grit stash · pop-sparse @wide-120k

Pop 3k edits in a mostly unchanged 120k-file tree vs git stash pop

repo: 120,000-file tree with 3,000 edits stashed, for stash pop · 120,000 files · 3 commits · 2 refs

$ grit-bench daily --only stash/pop-sparse@wide-120k2026-10-27 · grit 8dbc58e77 · git version 2.43.0
toolmedianminmaxrunspeak memory
git340 ms330 ms352 ms754 MB
grit118 ms116 ms126 ms749 MB
grit is 2.9× fastermemory: 1.1× less
every timed run (log scale)
git
grit
92 ms443 ms
How it's measured
before each run
set -eu cd /tmp/grit-bench-scratch/daily-stash-pop-sparse git reset --hard -q 'HEAD' git stash 'clear' git stash store -m 'sparse edits' "$(git rev-parse 'refs/grit-bench/stash-sparse')"
git runs
$ git stash pop
grit runs
$ grit stash pop
checked first
before timing, git and grit were each run once and their results compared
Where the time goesone extra traced run per tool, outside the timed runs
git · median run 340 ms
unpack_trees: unpack_trees ×4
132 ms
merge: checkout
127 ms
index: do_write_index ×3
74 ms
run: git status
64 ms
index: preload ×3
55 ms
index: refresh ×2
22 ms
unpack_trees: traverse_trees ×4
15 ms
index: do_read_index ×2
14 ms
status: untracked
6.4 ms
dir: read_directory
6.4 ms
index: name-hash-init
4.8 ms
status: worktrees
4.8 ms
cache_tree: update
4.0 ms
status: index
2.3 ms
status: print
1.8 ms
merge: incore_nonrecursive
0.4 ms
merge: process_entries ×3
0.3 ms
merge: collect_merge_info
0.2 ms
cache_tree: read ×2
0.2 ms
cache_tree: write ×3
0.1 ms
grit · median run 118 ms
grit.index.write
27 ms
grit.index.read
9.2 ms
grit.diff.tree ×2
1.5 ms
grit.repository.open
0.2 ms
grit.config.load ×2
0.1 ms
Every day8 days
dategrit commitgitgritgrit vs gitgrit peak
2026-10-278dbc58e77340 ms118 ms2.9× faster49 MB
2026-10-26c7cf2c443—not run——
2026-10-252824ad391—not run——
2026-10-24157a05dde—not run——
2026-10-23bddf92f86—not run——
2026-10-224c131b942—not run——
2026-10-21d4844e92a—not run——
2026-10-204754ad0b9—not run——