-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add: use preload-index and fscache for performance #971
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 <[email protected]>
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 <[email protected]>
…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
…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
…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 [email protected]