Re: [PATCH] fast-import: use hashcmp() for SHA1 hash comparison
- From
René Scharfe <l.s.r@web.de>
- Date
- Jul 18, 2014, 19:14 UTC
- Message-ID
- <53C971FD.6040500@web.de>
- In-Reply-To
- <20140718184246.GS12427@google.com>
Am 18.07.2014 20:42, schrieb Jonathan Nieder:
Show 25 quoted lines
> René Scharfe wrote: > >> Signed-off-by: Rene Scharfe <l.s.r@web.de> >> --- >> fast-import.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) > > Before: > > $ size git-fast-import > text data bss dec hex filename > 804138 6768 754160 1565066 17e18a git-fast-import > > After: > > $ size git-fast-import > text data bss dec hex filename > 804154 6768 754160 1565082 17e19a git-fast-import > > So this makes the text size worse on this machine (amd64, building > with gcc 4.8.2 -O2). That's probably because the old code does 'call > memcmp', while the new code inlines it. Inlining is presumably the > better choice. > > More importantly, the new code is more readable.
Yes, the latter point is the important one.
If inlining is really better is another matter; I don't understand how 1a812f3a (hashcmp(): inline memcmp() by hand to optimize) could have made git gc 18% faster, as it claimed. I would expect memcmp(), which can compare more than a byte at a time, to be significantly faster -- or at least just as fast as whatever the compiler does with the inlined version.
René