Each write() has syscall overhead, and writing a large index entails many such calls. A larger write buffer reduces the overhead, leading to increased performance.
On my repo, which has an index size of 30m, this saves about 10ms of time writing the index.
Signed-off-by: David Turner <dturner@twopensource.com> --- read-cache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to read-cache.c +1 −1
diff --git a/read-cache.c b/read-cache.c index d9fb78b..09ebe08 100644 --- a/read-cache.c +++ b/read-cache.c @@ -1714,7 +1714,7 @@ int unmerged_index(const struct index_state *istate) return 0; } -#define WRITE_BUFFER_SIZE 8192 +#define WRITE_BUFFER_SIZE 131072 static unsigned char write_buffer[WRITE_BUFFER_SIZE]; static unsigned long write_buffer_len;
-- 2.4.2.767.g62658d5-twtrsrc