diff options
author | Neeraj Singh <neerajsi@ntdev.microsoft.com> | 2021-02-18 02:48:26 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-02-24 13:40:30 -0800 |
commit | f279894d283101e8e7427347a5469a8731820872 (patch) | |
tree | 5213d76e69271dba67c9e173b3f22a8421c1585a /read-cache.c | |
parent | The tenth batch (diff) | |
download | tgif-f279894d283101e8e7427347a5469a8731820872.tar.xz |
read-cache: make the index write buffer size 128K
Writing an index 8K at a time invokes the OS filesystem and caching code
very frequently, introducing noticeable overhead while writing large
indexes. When experimenting with different write buffer sizes on Windows
writing the Windows OS repo index (260MB), most of the benefit came by
bumping the index write buffer size to 64K. I picked 128K to ensure that
we're past the knee of the curve.
With this change, the time under do_write_index for an index with 3M
files goes from ~1.02s to ~0.72s.
Signed-off-by: Neeraj Singh <neerajsi@ntdev.microsoft.com>
Acked-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'read-cache.c')
-rw-r--r-- | read-cache.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/read-cache.c b/read-cache.c index 29144cf879..a5b2779b95 100644 --- a/read-cache.c +++ b/read-cache.c @@ -2447,7 +2447,7 @@ int repo_index_has_changes(struct repository *repo, } } -#define WRITE_BUFFER_SIZE 8192 +#define WRITE_BUFFER_SIZE (128 * 1024) static unsigned char write_buffer[WRITE_BUFFER_SIZE]; static unsigned long write_buffer_len; |