aboutsummaryrefslogtreecommitdiff
path: root/BENCHMARKS.md
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-25 16:03:48 +0000
committerGravatar Runxi Yu2026-03-25 16:06:09 +0000
commit5931aad6cb6cdf32cc281544a29006c568d46214 (patch)
treebd634cd9d48058a2f4cf544c33f00495ef6cb24d /BENCHMARKS.md
parentobject: Split each object type into its own package (diff)
signatureNo signature
README: Split off contrib, benchmarks, remove history for now I guess, etc. v0.1.109
Diffstat (limited to 'BENCHMARKS.md')
-rw-r--r--BENCHMARKS.md22
1 files changed, 22 insertions, 0 deletions
diff --git a/BENCHMARKS.md b/BENCHMARKS.md
new file mode 100644
index 00000000..b6f8c0e8
--- /dev/null
+++ b/BENCHMARKS.md
@@ -0,0 +1,22 @@
+# Benchmarks
+
+* See [gitbench](https://git.sr.ht/~runxiyu/gitbench).
+* `legacy` branch furgit is slightly faster due to buffer reuse and custom
+ ZLIB. These will be re-added.
+* Alpine edge, i5-10210U, `performance` governor, `linux.git`.
+* go-git may become much faster when
+ [#1894](https://github.com/go-git/go-git/pull/1894)
+ and such are fully in use.
+* These lone tests do not represent all workloads. Test your usage
+ pattern yourself (and contribute to gitbench).
+
+## Traversing all trees in `HEAD` and fetching each file size
+
+Mainly tests the packfile object reader.
+
+| Implementation | Total | User | System |
+| - | - | - | - |
+| Git | 337 ms | 226 ms | 108 ms |
+| libgit2 | 391 ms | 269 ms | 120 ms |
+| Furgit | 487 ms | 457 ms | 49 ms |
+| go-git | 37 s | 35 s | 2 s |