git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Bump core.deltaBaseCacheLimit to 96m

From
David Kastrup <dak@gnu.org>
Date
May 4, 2014, 17:13 UTC
Message-ID
<1399223637-29964-1-git-send-email-dak@gnu.org>

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>
---
 Documentation/config.txt | 2 +-
 environment.c            | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 1932e9b..21a3c86 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -489,7 +489,7 @@ core.deltaBaseCacheLimit::
 	to avoid unpacking and decompressing frequently used base
 	objects multiple times.
 +
-Default is 16 MiB on all platforms.  This should be reasonable
+Default is 96 MiB on all platforms.  This should be reasonable
 for all users/operating systems, except on the largest projects.
 You probably do not need to adjust this value.
 +
diff --git a/environment.c b/environment.c
index 5c4815d..37354c8 100644
--- a/environment.c
+++ b/environment.c
@@ -37,7 +37,7 @@ int core_compression_seen;
 int fsync_object_files;
 size_t packed_git_window_size = DEFAULT_PACKED_GIT_WINDOW_SIZE;
 size_t packed_git_limit = DEFAULT_PACKED_GIT_LIMIT;
-size_t delta_base_cache_limit = 16 * 1024 * 1024;
+size_t delta_base_cache_limit = 96 * 1024 * 1024;
 unsigned long big_file_threshold = 512 * 1024 * 1024;
 const char *pager_program;
 int pager_use_color = 1;
-- 
1.9.1
Next: Duy Nguyen
Message 1 of 7 in “Bump core.deltaBaseCacheLimit to 96m”
  1. Bump core.deltaBaseCacheLimit to 96mDavid Kastrup, May 4, 2014
  2. Duy NguyenMay 5, 2014
  3. Duy NguyenMay 5, 2014
  4. Matthieu MoyMay 5, 2014
  5. Duy NguyenMay 5, 2014
  6. David KastrupMay 5, 2014
  7. Jeff KingMay 5, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.