Skip to content
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

fscache: use FindFirstFileExW to avoid retrieving the short name #1908

Merged
merged 1 commit into from
Nov 5, 2018
Merged

fscache: use FindFirstFileExW to avoid retrieving the short name #1908

merged 1 commit into from
Nov 5, 2018

Conversation

benpeart
Copy link

@benpeart benpeart commented Nov 1, 2018

Use FindFirstFileExW with FindExInfoBasic to avoid forcing NTFS to look up
the short name. Also switch to a larger (64K vs 4K) buffer using
FIND_FIRST_EX_LARGE_FETCH to minimize round trips to the kernel.

In a repo with ~200K files, this drops warm cache status times from 3.19
seconds to 2.67 seconds for a 16% savings.

Signed-off-by: Ben Peart benpeart@microsoft.com

Use FindFirstFileExW with FindExInfoBasic to avoid forcing NTFS to look up
the short name.  Also switch to a larger (64K vs 4K) buffer using
FIND_FIRST_EX_LARGE_FETCH to minimize round trips to the kernel.

In a repo with ~200K files, this drops warm cache status times from 3.19
seconds to 2.67 seconds for a 16% savings.

Signed-off-by: Ben Peart <benpeart@microsoft.com>
@dscho dscho merged commit a7b6b03 into git-for-windows:master Nov 5, 2018
@dscho
Copy link
Member

dscho commented Nov 5, 2018

Excellent, thank you so much!

dscho added a commit to git-for-windows/build-extra that referenced this pull request Nov 5, 2018
The FSCache feature [now uses a faster method to enumerate
files](git-for-windows/git#1908), making
e.g. `git status` faster in large repositories.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
@dscho dscho added this to the v2.19.1(2) milestone Nov 5, 2018
dscho added a commit to dscho/git that referenced this pull request Nov 19, 2018
…-gfw

fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit to dscho/git that referenced this pull request Nov 20, 2018
…-gfw

fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit that referenced this pull request Nov 21, 2018
fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit to dscho/git that referenced this pull request Nov 23, 2018
…-gfw

fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit to dscho/git that referenced this pull request Nov 30, 2018
…-gfw

fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit to dscho/git that referenced this pull request Dec 1, 2018
…-gfw

fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit to dscho/git that referenced this pull request Dec 9, 2018
…-gfw

fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit to dscho/git that referenced this pull request Dec 15, 2018
…-gfw

fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit to dscho/git that referenced this pull request Feb 7, 2019
…-gfw

fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit to dscho/git that referenced this pull request Feb 7, 2019
…-gfw

fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit that referenced this pull request Oct 11, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit that referenced this pull request Oct 20, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit that referenced this pull request Oct 20, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit that referenced this pull request Oct 21, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Oct 21, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Oct 21, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Oct 22, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Oct 22, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Oct 22, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Oct 22, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Oct 22, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Oct 22, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit that referenced this pull request Oct 23, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Oct 25, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Oct 25, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Oct 25, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Oct 30, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Nov 1, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Nov 6, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit that referenced this pull request Nov 22, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit that referenced this pull request Nov 22, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit that referenced this pull request Nov 22, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit that referenced this pull request Nov 22, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit that referenced this pull request Nov 22, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Nov 25, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Nov 25, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Nov 25, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Nov 25, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
dscho added a commit to dscho/git that referenced this pull request Nov 25, 2024
…-gfw

fscache: use FindFirstFileExW to avoid retrieving the short name
git-for-windows-ci pushed a commit that referenced this pull request Nov 25, 2024
fscache: use FindFirstFileExW to avoid retrieving the short name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants