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

path-walk: improve path-walk speed with many tags #695

Merged
merged 1 commit into from
Oct 9, 2024

Conversation

derrickstolee
Copy link
Collaborator

In the presence of many tags, the use of oid_array_lookup() can become extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for adding the peeled object to the correct oid_array.


I found this while testing the 2.47.0.vfs.0.0 pre-release against a repo with many annotated tags.

In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

Signed-off-by: Derrick Stolee <stolee@gmail.com>
@derrickstolee derrickstolee self-assigned this Oct 9, 2024
path-walk.c Show resolved Hide resolved
Copy link
Member

@dscho dscho left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice improvement!

path-walk.c Show resolved Hide resolved
@dscho dscho merged commit dda73ee into microsoft:vfs-2.47.0 Oct 9, 2024
49 checks passed
dscho added a commit to git-for-windows/git that referenced this pull request Oct 11, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

@derrickstolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 11, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

@derrickstolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 11, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

@derrickstolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.
dscho added a commit to git-for-windows/git that referenced this pull request Oct 11, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

@derrickstolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.
dscho added a commit to git-for-windows/git that referenced this pull request Oct 11, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

@derrickstolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.
dscho added a commit to git-for-windows/git that referenced this pull request Oct 11, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

@derrickstolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.
dscho added a commit to git-for-windows/git that referenced this pull request Oct 11, 2024
path-walk: improve path-walk speed with many tags (#5205)

In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
dscho added a commit to git-for-windows/git that referenced this pull request Oct 11, 2024
path-walk: improve path-walk speed with many tags (#5205)

In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
dscho added a commit to git-for-windows/git that referenced this pull request Oct 11, 2024
path-walk: improve path-walk speed with many tags (#5205)

In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
dscho added a commit to git-for-windows/git that referenced this pull request Oct 11, 2024
path-walk: improve path-walk speed with many tags (#5205)

In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
dscho added a commit to git-for-windows/git that referenced this pull request Oct 20, 2024
path-walk: improve path-walk speed with many tags (#5205)

In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
dscho added a commit to git-for-windows/git that referenced this pull request Oct 20, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
dscho added a commit to git-for-windows/git that referenced this pull request Oct 20, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
dscho added a commit to git-for-windows/git that referenced this pull request Oct 21, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 21, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 21, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 22, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 22, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 22, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 22, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 22, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 22, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
dscho added a commit to git-for-windows/git that referenced this pull request Oct 23, 2024
path-walk: improve path-walk speed with many tags (#5205)

In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
dscho added a commit to git-for-windows/git that referenced this pull request Oct 23, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 25, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 25, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 25, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Oct 30, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/git that referenced this pull request Nov 1, 2024
In the presence of many tags, the use of oid_array_lookup() can become
extremely slow. We should rely upon the SEEN bit instead.

This affects the tag-peeling walk as well as the switch statement for
adding the peeled object to the correct oid_array.

----

Derrick Stolee found this while testing the 2.47.0.vfs.0.0 pre-release
against a repo with many annotated tags.

This is a backport of microsoft#695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
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