Increase packedGit{Limit,WindowSize} on 64 bit systems.
If we have a 64 bit address space we can easily afford to commit a larger amount of virtual address space to pack file access. So on these platforms we should increase the default settings of core.packedGit{Limit,WindowSize} to something that will better handle very large projects. Thanks to Andy Whitcroft for pointing out that we can safely increase these defaults on such systems. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
eb92242f19
commit
22bac0ea52
@ -125,9 +125,12 @@ core.packedGitWindowSize::
|
|||||||
more quickly. Smaller window sizes will negatively affect
|
more quickly. Smaller window sizes will negatively affect
|
||||||
performance due to increased calls to the operating system's
|
performance due to increased calls to the operating system's
|
||||||
memory manager, but may improve performance when accessing
|
memory manager, but may improve performance when accessing
|
||||||
a large number of large pack files. Default is 32 MiB,
|
a large number of large pack files.
|
||||||
which should be reasonable for all users/operating systems.
|
+
|
||||||
You probably do not need to adjust this value.
|
Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
|
||||||
|
MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
|
||||||
|
be reasonable for all users/operating systems. You probably do
|
||||||
|
not need to adjust this value.
|
||||||
+
|
+
|
||||||
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
||||||
|
|
||||||
@ -136,9 +139,10 @@ core.packedGitLimit::
|
|||||||
from pack files. If Git needs to access more than this many
|
from pack files. If Git needs to access more than this many
|
||||||
bytes at once to complete an operation it will unmap existing
|
bytes at once to complete an operation it will unmap existing
|
||||||
regions to reclaim virtual address space within the process.
|
regions to reclaim virtual address space within the process.
|
||||||
Default is 256 MiB, which should be reasonable for all
|
+
|
||||||
users/operating systems, except on the largest projects.
|
Default is 256 MiB on 32 bit platforms and 8 GiB on 64 bit platforms.
|
||||||
You probably do not need to adjust this value.
|
This should be reasonable for all users/operating systems, except on
|
||||||
|
the largest projects. You probably do not need to adjust this value.
|
||||||
+
|
+
|
||||||
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
||||||
|
|
||||||
|
@ -97,11 +97,17 @@ extern int git_munmap(void *start, size_t length);
|
|||||||
#else /* NO_MMAP */
|
#else /* NO_MMAP */
|
||||||
|
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#define DEFAULT_PACKED_GIT_WINDOW_SIZE (32 * 1024 * 1024)
|
#define DEFAULT_PACKED_GIT_WINDOW_SIZE \
|
||||||
|
(sizeof(void*) >= 8 \
|
||||||
|
? 1 * 1024 * 1024 * 1024 \
|
||||||
|
: 32 * 1024 * 1024)
|
||||||
|
|
||||||
#endif /* NO_MMAP */
|
#endif /* NO_MMAP */
|
||||||
|
|
||||||
#define DEFAULT_PACKED_GIT_LIMIT (256 * 1024 * 1024)
|
#define DEFAULT_PACKED_GIT_LIMIT \
|
||||||
|
(sizeof(void*) >= 8 \
|
||||||
|
? 8 * 1024 * 1024 * 1024 \
|
||||||
|
: 256 * 1024 * 1024)
|
||||||
|
|
||||||
#ifdef NO_SETENV
|
#ifdef NO_SETENV
|
||||||
#define setenv gitsetenv
|
#define setenv gitsetenv
|
||||||
|
Loading…
Reference in New Issue
Block a user