diff options
author | Jeff King <peff@peff.net> | 2016-11-30 23:52:43 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-12-06 13:27:11 -0800 |
commit | 1f7c9261320576fcaaa5b4e50ad73336b17183e8 (patch) | |
tree | 358c866f7964837cd50c059184a9735d08553a78 /reachable.c | |
parent | Start post 2.11 cycle (diff) | |
download | tgif-1f7c9261320576fcaaa5b4e50ad73336b17183e8.tar.xz |
xdiff: drop XDL_FAST_HASH
The xdiff code hashes every line of both sides of a diff,
and then compares those hashes to find duplicates. The
overall performance depends both on how fast we can compute
the hashes, but also on how many hash collisions we see.
The idea of XDL_FAST_HASH is to speed up the hash
computation. But the generated hashes have worse collision
behavior. This means that in some cases it speeds diffs up
(running "git log -p" on git.git improves by ~8% with it),
but in others it can slow things down. One pathological case
saw over a 100x slowdown[1].
There may be a better hash function that covers both
properties, but in the meantime we are better off with the
original hash. It's slightly slower in the common case, but
it has fewer surprising pathological cases.
[1] http://public-inbox.org/git/20141222041944.GA441@peff.net/
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'reachable.c')
0 files changed, 0 insertions, 0 deletions