Performance (self-compiled vs. distributed)
- From
D. Ben Knoble <ben.knoble@gmail.com>
- Date
- Sep 3, 2025, 20:31 UTC
- Message-ID
- <CALnO6CA3FkiOeF4w1TUf9S_UDTG_1iRxjEZcAkfrL_eqY+P26w@mail.gmail.com>
I have an installation of Git at /usr/local/bin/git managed by Homebrew. I'm also tinkering with building my own Git (+ patches) to experiment with new features. Today I used "make install …" to get that in ~/bin/git, but I'm noticing some performance problems. My shell prompt started coming back slower, especially in a large monorepo.
For example, inside said monorepo (apologies in advance; output is on a computer I can't easily copy from):
hyperfine -Ni -w10 {/usr/local,$HOME}/bin/git
…
/usr/local/bin/git ran 4.99 +/- 1.69 times faster than ~/bin/gitThe difference is 22ms +/- 6.5ms (15.3ms–56.3ms) compared to 109.7ms +/- 17.8ms (91.1ms–159.9ms).
My build recipe was
export DEVELOPER=1
export XML_CATALOG_FILES=/usr/local/etc/xml/catalog
make -j "$(nproc)" all doc
make install install-doc install-htmlWhich differs somewhat from Homebrew's recipe (namely, Perl & Python path aren't set; nor is USE_LIBPCRE nor INSTALL_SYMLINKS… I'm ignoring the "extras" for now). I wouldn't particularly expect any of those to create an issue, though.
Any tips on debugging this would be greatly appreciated.
Some other tidbits:
ls -lh@ {/usr/local,$HOME}/bin/git
-rwxr-xr-x@ … 4.4M … ~/bin/git
com.apple.provenance 11B
-r-xr-xr-x@ … 3.5M … /usr/local/bin/git
com.apple.provenance 11BI wondered if quarantining was at play, and this seems to indicate it isn't. It is interesting that my binary is so much bigger!
Source I compiled: https://github.com/benknoble/git/tree/ps-jj
PS I also noticed we put all the RelNotes in $prefix/share/doc/git-doc/RelNotes/*.adoc; I might have expected those to get turned into HTML, too?
-- D. Ben Knoble