diff-delta.c: pack the index structure
authorDavid Kastrup <dak@gnu.org>
Sat, 8 Sep 2007 21:17:44 +0000 (23:17 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 10 Sep 2007 00:16:49 +0000 (17:16 -0700)
commitd2100860fd67dec6474157697888caaa0a0f51d0
tree535dd0895b7e7b93b9026895d6027d9b622aad43
parent57543a254c6aef8fca5556e25a9fa6dd5622b037
diff-delta.c: pack the index structure

In normal use cases, the performance wins are not overly impressive:
we get something like 5-10% due to the slightly better locality of
memory accesses using the packed structure.

However, since the data structure for index entries saves 33% of
memory on 32-bit platforms and 40% on 64-bit platforms, the behavior
when memory gets limited should be nicer.

This is a rather well-contained change.  One obvious improvement would
be sorting the elements in one bucket according to their hash, then
using binary probing to find the elements with the right hash value.

As it stands, the output should be strictly the same as previously
unless one uses the option for limiting the amount of used memory, in
which case the created packs might be better.

Signed-off-by: David Kastrup <dak@gnu.org>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff-delta.c