Bump core.deltaBaseCacheLimit to 96m

The default of 16m causes serious thrashing for large delta chains combined with large files. Here are some benchmarks (pu variant of git blame): time git blame -C src/xdisp.c >/dev/null for a repository of Emacs repacked with git gc --aggressive (v1.9, resulting in a window size of 250) located on an SSD drive. The file in question has about 30000 lines, 1Mb of size, and a history with about 2500 commits. 16m (previous default): real 3m33.936s user 2m15.396s sys 1m17.352s 32m: real 3m1.319s user 2m8.660s sys 0m51.904s 64m: real 2m20.636s user 1m55.780s sys 0m23.964s 96m: real 2m5.668s user 1m50.784s sys 0m14.288s 128m: real 2m4.337s user 1m50.764s sys 0m12.832s 192m: real 2m3.567s user 1m49.508s sys 0m13.312s Signed-off-by: David Kastrup <dak@gnu.org> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

David Kastrup committed May 4, 2014 at 19:13 UTC 4874f544f1574a55d787339a6455f524768c1b5d
2 files changed +2 -2
Documentation/config.txt
+1 -1
@@ -489,7 +489,7 @@ core.deltaBaseCacheLimit::
489 to avoid unpacking and decompressing frequently used base
490 objects multiple times.
491 +
492 -Default is 16 MiB on all platforms. This should be reasonable
492 +Default is 96 MiB on all platforms. This should be reasonable
493 for all users/operating systems, except on the largest projects.
494 You probably do not need to adjust this value.
495 +
environment.c
+1 -1
@@ -37,7 +37,7 @@ int core_compression_seen;
37 int fsync_object_files;
38 size_t packed_git_window_size = DEFAULT_PACKED_GIT_WINDOW_SIZE;
39 size_t packed_git_limit = DEFAULT_PACKED_GIT_LIMIT;
40 -size_t delta_base_cache_limit = 16 * 1024 * 1024;
40 +size_t delta_base_cache_limit = 96 * 1024 * 1024;
41 unsigned long big_file_threshold = 512 * 1024 * 1024;
42 const char *pager_program;
43 int pager_use_color = 1;