Re: git-diff-tree inordinately (O(M*N)) slow on files with many changes
- From
- Davide Libenzi <davidel@xmailserver.org>
- Date
- Oct 16, 2006, 19:44 UTC
- Message-ID
- <Pine.LNX.4.64.0610161225470.7697@alien.or.mcafeemobile.com>
- In-Reply-To
- <Pine.LNX.4.64.0610161130090.3962@g5.osdl.org>
On Mon, 16 Oct 2006, Linus Torvalds wrote:
Show 6 quoted lines
> > Junio, I think this is worthy to go in before a 1.4.3 release. Possibly > even back-ported to earlier trees. Anything that causes an almost two > orders of magnitude slowdown (even if it's just on 64-bit architectures > and most people won't necessarily compile git that way) is worth fixing > pronto.
I ended up using this one:
#define XDL_HASHLONG(v, b) ((((unsigned long) (v) >> ((CHAR_BIT * sizeof(unsigned long)) - (b))) + \
(unsigned long) (v)) & ((1UL << (b)) - 1))The GR_PRIME selection does not make me feel good, and the 'static inline' is puked-over by certain C compilers. It'd be probably fine to just use a simple function, though the above should work just fine.
real 0m0.665s user 0m0.655s sys 0m0.010s
(Opteron 252)
- Davide