Re: [PATCH] git gc: Speed it up by 18% via faster hash comparisons
- From
- Ralf Baechle <ralf@linux-mips.org>
- Date
- Apr 28, 2011, 00:35 UTC
- Message-ID
- <20110428003541.GA18382@linux-mips.org>
- In-Reply-To
- <7voc3r5kzn.fsf@alter.siamese.dyndns.org>
On Wed, Apr 27, 2011 at 04:32:12PM -0700, Junio C Hamano wrote:
Show 7 quoted lines
> > +static inline int is_null_sha1(const unsigned char *sha1)
> > {
> > - return memcmp(sha1, sha2, 20);
> > + const unsigned long long *sha1_64 = (void *)sha1;
> > + const unsigned int *sha1_32 = (void *)sha1;
>
> Can everybody do unaligned accesses just fine?Misaligned accesses cause exceptions on some architectures which then are fixed up in software making these accesses _very_ slow. You can use __attribute__((packed)) to work around that but that will on the affected architectures make gcc generate code pessimistically that is slower than not using __attribute__((packed)) in case of proper alignment. And __attribute__((packed)) only works with GCC.
Ralf