grit://cooking/bench/commit/small@synth-100k
← cookingall benchmarksraw data

grit commit · small @synth-100k

Commit after staging ~1% paths: grit commit bench vs git add+commit

repo: 100,000-file synthetic repository; canonical cached shape · 100,000 files · 1,000 commits · 1,200 refs

$ grit-bench daily --only commit/small@synth-100k2026-10-27 · grit 8dbc58e77 · git version 2.43.0
toolmedianminmaxrunspeak memory
git896 ms888 ms937 ms537 MB
grit143 ms134 ms171 ms548 MB
grit is 6.3× fastermemory: 1.3× more
every timed run (log scale)
git
grit
107 ms1.18 s
How it's measured
before each run
grit-bench prepare-worktree-commit --git git
git runs
$ set -eu
set -eu
if [ -s /tmp/grit-bench-scratch/daily-synth-100k/.grit-bench-worktree-paths ]; then
  tr '\n' '\0' < /tmp/grit-bench-scratch/daily-synth-100k/.grit-bench-worktree-paths | xargs -0 git add -- > /dev/null 2>&1
fi
git commit -q -m bench
grit runs
$ grit commit bench
Where the time goesone extra traced run per tool, outside the timed runs
git · median run 896 ms
index: preload ×3
155 ms
index: do_write_index ×2
45 ms
index: do_read_index ×2
11 ms
dir: read_directory
9.9 ms
index: name-hash-init
5.1 ms
cache_tree: update ×2
2.3 ms
run: git maintenance
1.8 ms
index: refresh
1.7 ms
unpack_trees: unpack_trees
0.8 ms
cache_tree: read ×2
0.3 ms
cache_tree: write ×2
0.2 ms
unpack_trees: traverse_trees
0.2 ms
diff: setup
0.0 ms
diff: write
0.0 ms
grit · median run 143 ms
grit.index.write ×2
57 ms
grit.index.read
7.4 ms
grit.diff.tree
0.5 ms
grit.repository.open ×2
0.4 ms
grit.config.load ×4
0.2 ms
grit.pack.index.open
0.0 ms
Every day8 days
dategrit commitgitgritgrit vs gitgrit peak
2026-10-278dbc58e77896 ms143 ms6.3× faster48 MB
2026-10-26c7cf2c443953 ms262 ms3.6× faster68 MB
2026-10-252824ad3911.04 s175 ms6.0× faster46 MB
2026-10-24157a05dde951 ms296 ms3.2× faster44 MB
2026-10-23bddf92f861.00 s335 ms3.0× faster44 MB
2026-10-224c131b942951 ms327 ms2.9× faster43 MB
2026-10-21d4844e92a914 ms392 ms2.3× faster47 MB
2026-10-204754ad0b9944 ms430 ms2.2× faster55 MB