simple euristic for further free packing improvements
authorNicolas Pitre <nico@cam.org>
Mon, 15 May 2006 15:40:05 +0000 (11:40 -0400)
committerJunio C Hamano <junkio@cox.net>
Mon, 15 May 2006 19:31:21 +0000 (12:31 -0700)
commit4e8da1958111796d55ad63b229ebd3ae6c54bf87
tree97580ee1c4eb067840da9d8bbb1e49c45b188129
parent6d6776cb497ea7fbf5fe43912dbe3286f76c9933
simple euristic for further free packing improvements

Given that the early eviction of objects with maximum delta depth
may exhibit bad packing on its own, why not considering a bias against
deep base objects in try_delta() to mitigate that bad behavior.

This patch adjust the MAX_size allowed for a delta based on the depth of
the base object as well as enabling the early eviction of max depth
objects from the object window.  When used separately, those two things
produce slightly better and much worse results respectively.  But their
combined effect is a surprising significant packing improvement.

With this really simple patch the GIT repo gets nearly 15% smaller, and
the Linux kernel repo about 5% smaller, with no significantly measurable
CPU usage difference.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
pack-objects.c