Performance of different git tools cloning a fairly large repo




Tested on FreeBSD 14.1 (ufs2 backed memory disk without compression) cloning FreeBSD’s ports repository from codeberg.org




Ryzen 7900, 128Gb RAM, 250mbit connection




Everything is compiled from “scratch” with CPUTYPE set to znver4










Application
git (2.45.2) Gitoxide (0.37.0) got/Game of Trees (0.101) Jujitsu/jj (0.19.0)






Language
C Rust C Rust
Backend (if known)
Internal Internal Internal libgit2






Time




real
3m31.89s 1m59.08s 1h28m20.01s 5m54.43s
user
4m23.68s 1m9.86s 1h27m45.98s 3m38.91s
sys
43.04s 15.96s 26.20s 26.99s






Memory




maximum resident set size
2058908 3591756 3221692 2036628
average shared memory size
2802 10032 101 9384
average unshared data size
224 27 68 20
average unshared stack size
128 254 128 256
page reclaims
605456 734911 999628 586084
page faults
0 127 3 76
swaps
0 0 0 0
block input operations
63 2 0 29
block output operations
3166 3851 14604 1632
messages sent
186771 236 147698 8
messages received
887549 381528 562204 150954
signals received
192 0 0 0
voluntary context switches
6838379 593280 202688 10822
involuntary context switches
1072 4836 83135 3290






Notes


Uses one thread for fetching, interation of commits is extremely slow Doesn’t seem to use compression for downloads