From: René Scharfe Date: Fri, 18 Jul 2014 19:14:05 GMT Subject: Re: [PATCH] fast-import: use hashcmp() for SHA1 hash comparison Message-ID: <53C971FD.6040500@web.de> In-Reply-To: <20140718184246.GS12427@google.com> Am 18.07.2014 20:42, schrieb Jonathan Nieder: > René Scharfe wrote: > >> Signed-off-by: Rene Scharfe >> --- >> 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é