Benchmarks against Git tuned for large repositories (refs #41) 5ae7533f1888
A Git column tuned as Git recommends for large repositories (feature.manyFiles, core.untrackedCache, a commit-graph; no fsmonitor, which has no daemon on Linux in Git 2.53). Tuned Git is ahead of oxy on clean and one-file status, diff, log and blame; oxy beats Git as it comes on status only.
- Author
- Andy McCall @andymccall <[email protected]>
- When
- · 2026-10-01 23:09 UTC
- Signature
- ✔ signed by Andy McCall
- Hash
5ae7533f1888a0e1d318e2eddc42133982c545d475b1a91107b8cbdd79cb9e9a- Depends on
- 1d360c91a289 33472ccc08cc
- Depended on by
- e96a430c78f3
- In bookmarks
- agents-in-readme bare-hashes carried-not-removed carry-identical doctor-trust identical-sides keyless-tags main merge-remote-bookmark only-help-103 paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state switch-says
- In tags
- v0.10.0 v0.11.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
- Edits
- 1 atom, 0 tree operations, 1 file
Browse the tree at this change
modified docs/benchmarks.md +22 −0
| … | 847 unchanged lines |
||
| 848 | 848 | ||
| 849 | 849 | What remains on oxygen is checking each row's signature (30 ms for 100). |
|
| 850 | 850 | ||
| 851 | + | ### Against Git tuned for large repositories (2026-10-02) |
|
| 852 | + | ||
| 853 | + | Git as it comes compares an untuned Git with an oxy that uses every |
|
| 854 | + | cache it has. `~/bench/vs-git-tuned.sh` adds a copy of the Git repository |
|
| 855 | + | tuned as Git recommends for large ones: `feature.manyFiles` (index v4 and |
|
| 856 | + | more), `core.untrackedCache`, and a commit-graph. Not `core.fsmonitor`: |
|
| 857 | + | Git 2.53 has no file-watcher daemon on Linux, and Watchman is not |
|
| 858 | + | installed. Earth, load average 1.6, three runs each, alternating. |
|
| 859 | + | ||
| 860 | + | | | oxy | Git | Git, tuned | |
|
| 861 | + | |---|---:|---:|---:| |
|
| 862 | + | | status, clean | 0.16 s | 0.20 to 0.21 s | **0.10 s** | |
|
| 863 | + | | status, one file edited | 0.12 to 0.13 s | 0.21 to 0.22 s | **0.10 to 0.11 s** | |
|
| 864 | + | | diff, one file | 0.22 to 0.23 s | 0.09 s | **0.08 to 0.09 s** | |
|
| 865 | + | | log -n 100 | 0.03 s | **0.00 s** | **0.00 s** | |
|
| 866 | + | | blame MAINTAINERS | 0.16 s | **0.06 s** | **0.06 s** | |
|
| 867 | + | ||
| 868 | + | Tuned Git is ahead of oxy on all five. Its untracked cache is what oxy's |
|
| 869 | + | directory times do, and with it Git's status is a little faster than |
|
| 870 | + | oxy's. oxy beats Git as it comes on status only. Claims of speed against |
|
| 871 | + | Git should say which Git. |
|
| 872 | + |