add: use preload-index and fscache for performance#971
Conversation
Teach "add" to use preload-index and fscache features to improve performance on very large repositories. During an "add", a call is made to run_diff_files() which calls check_remove() for each index-entry. This calls lstat(). On Windows, the fscache code intercepts the lstat() calls and builds a private cache using the FindFirst/FindNext routines, which are much faster. Somewhat independent of this, is the preload-index code which distributes some of the start-up costs across multiple threads. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
|
Excellent! |
|
Oops, I just realized something... (Please note that So maybe the best course of action is to keep the original I am thinking about something like this: dscho@8f26c6a What do you think @jeffhostetler ? |
Performance of `git add` in large worktrees [was improved](git-for-windows/git#971). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
…er/add_preload_fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…er/add_preload_fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…er/add_preload_fscache add: use preload-index and fscache for performance
…er/add_preload_fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
…fscache add: use preload-index and fscache for performance
Teach "add" to use preload-index and fscache features
to improve performance on very large repositories.
During an "add", a call is made to run_diff_files()
which calls check_remove() for each index-entry. This
calls lstat(). On Windows, the fscache code intercepts
the lstat() calls and builds a private cache using the
FindFirst/FindNext routines, which are much faster.
Somewhat independent of this, is the preload-index code
which distributes some of the start-up costs across
multiple threads.
Signed-off-by: Jeff Hostetler jeffhost@microsoft.com