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

grit commit · small @synth-10k

Commit staged changes vs git commit

repo: 10,000-file synthetic repository; canonical cached shape, scenario variants documented by the runner · 10,000 files · 1,000 commits · 800 refs

$ grit-bench daily --only commit/small@synth-10k2026-10-27 · grit 8dbc58e77 · git version 2.43.0
toolmedianminmaxrunspeak memory
git26 ms25 ms28 ms2013 MB
grit18 ms17 ms18 ms2025 MB
grit is 1.5× fastermemory: 1.9× more
every timed run (log scale)
git
grit
13 ms35 ms
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-10k/.grit-bench-worktree-paths ]; then
  tr '\n' '\0' < /tmp/grit-bench-scratch/daily-synth-10k/.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 26 ms
index: preload ×3
4.6 ms
index: do_write_index ×2
4.4 ms
run: git maintenance
1.5 ms
index: do_read_index ×2
1.2 ms
index: refresh
0.6 ms
dir: read_directory
0.4 ms
index: name-hash-init
0.3 ms
cache_tree: update ×2
0.2 ms
unpack_trees: unpack_trees
0.1 ms
unpack_trees: traverse_trees
0.1 ms
cache_tree: read ×2
0.1 ms
cache_tree: write ×2
0.0 ms
diff: setup
0.0 ms
diff: write
0.0 ms
grit · median run 18 ms
grit.index.write ×2
5.3 ms
grit.index.read
0.8 ms
grit.repository.open ×2
0.3 ms
grit.config.load ×4
0.1 ms
grit.diff.tree
0.1 ms
grit.pack.index.open
0.0 ms
Every day8 days
dategrit commitgitgritgrit vs gitgrit peak
2026-10-278dbc58e7726 ms18 ms1.5× faster25 MB
2026-10-26c7cf2c44338 ms35 ms1.1× faster32 MB
2026-10-252824ad39129 ms21 ms1.4× faster23 MB
2026-10-24157a05dde27 ms22 ms1.2× faster23 MB
2026-10-23bddf92f8628 ms23 ms1.2× faster23 MB
2026-10-224c131b94228 ms26 ms1.1× faster22 MB
2026-10-21d4844e92a27 ms33 ms1.2× slower21 MB
2026-10-204754ad0b930 ms36 ms1.2× slower22 MB