grit://cooking/bench/history/reword@synth-10k
← cookingall benchmarksraw data

grit history · reword @synth-10k

History reword vs git history reword or scripted rebase

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 history/reword@synth-10k2026-10-27 · grit 8dbc58e77 · git version 2.43.0
toolmedianminmaxrunspeak memory
git6.39 s6.26 s6.40 s528 MB
grit129 ms128 ms131 ms523 MB
grit is 49× fastermemory: 1.2× less
every timed run (log scale)
git
grit
102 ms8.06 s
How it's measured
before each run
grit-bench prepare-history-rewrite --git git
git runs
$ set -eu; GIT_CONFIG_NOSYSTEM=1 GIT_CONFIG_GLOBAL='/tmp/grit-bench-global-config' GIT_CONFIG_SYSTEM=/dev/null GIT_AUTHOR_NAME=Bench GIT_AUTHOR_EMAIL=b@example.com GIT_COMMITTER_NAME=Bench GIT_COMMITTER_EMAIL=b@example.com GIT_COMMITTER_DATE='1700000100 +0000' ./.grit-bench/git-reword-rebase.sh >/dev/null
grit runs
$ set -eu; grit history reword HEAD~1000 -m 'grit-bench history rewrite message' >/dev/null
Where the time goesone extra traced run per tool, outside the timed runs
git · median run 6.39 s
index: do_write_index ×1005
2.89 s
unpack_trees: unpack_trees ×2006
1.42 s
merge: checkout ×1000
1.34 s
unpack_trees: traverse_trees ×2006
1.05 s
index: do_read_index ×1004
254 ms
index: refresh ×5
109 ms
cache_tree: update ×1002
98 ms
merge: incore_nonrecursive ×1000
73 ms
run: git commit
46 ms
merge: process_entries ×3000
44 ms
cache_tree: read ×1004
25 ms
merge: collect_merge_info ×1000
21 ms
cache_tree: write ×1005
21 ms
merge: write_auto_merge ×1000
18 ms
merge: merge_start ×1000
12 ms
index: preload ×6
12 ms
merge: traverse_trees ×1000
12 ms
status: print
7.7 ms
merge: plist ×3000
5.3 ms
merge: allocate/init ×1000
4.0 ms
grit · median run 129 ms
grit.revwalk.setup
40 ms
grit.index.read ×4
3.2 ms
grit.repository.open ×2
0.4 ms
grit.config.load ×4
0.2 ms
grit.pack.index.open
0.0 ms
grit.diff.tree ×2
0.0 ms
Every day8 days
dategrit commitgitgritgrit vs gitgrit peak
2026-10-278dbc58e776.39 s129 ms49× faster23 MB
2026-10-26c7cf2c443—fail——
2026-10-252824ad3916.36 s146 ms44× faster22 MB
2026-10-24157a05dde6.59 s158 ms42× faster45 MB
2026-10-23bddf92f866.36 s163 ms39× faster45 MB
2026-10-224c131b9426.22 s154 ms40× faster45 MB
2026-10-21d4844e92a6.09 s151 ms40× faster45 MB
2026-10-204754ad0b96.38 s150 ms42× faster44 MB