Filter to possible package paths before trying to resolve a module.#18038
Merged
Conversation
With a long sys.path (it's got 300 entries), this removes 94% of stat syscalls from running mypy. With all the filesystem caching, that's only a small time savings, though it will depend on your filesystem.
This comment has been minimized.
This comment has been minimized.
hauntsaninja
left a comment
Collaborator
There was a problem hiding this comment.
Awesome stuff! I pushed two commits to try and get tests passing, I'll also run this through the benchmarking setup that I had going :-)
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
hauntsaninja
force-pushed
the
dmj/long-sys-path
branch
from
October 25, 2024 05:47
b773887 to
fbc8ff0
Compare
Collaborator
|
Okay, I benchmarked ac79825 as the following on
I'll check the extra Doing this also uncovered a minor regression from #15347 , which I shall try to fix... (update: I think best done in a new PR) |
This comment has been minimized.
This comment has been minimized.
hauntsaninja
force-pushed
the
dmj/long-sys-path
branch
from
October 25, 2024 06:24
fbc8ff0 to
e018d5d
Compare
hauntsaninja
force-pushed
the
dmj/long-sys-path
branch
from
October 25, 2024 06:26
e018d5d to
778dbec
Compare
Contributor
|
According to mypy_primer, this change doesn't affect type check results on a corpus of open source code. ✅ |
hauntsaninja
added a commit
that referenced
this pull request
Oct 26, 2024
Follow up to #18038 This maybe should have been two PRs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With a long sys.path (it's got 300 entries), this removes 94% of stat syscalls from running mypy. With all the filesystem caching, that's only a small time savings, though it will depend on your filesystem. Local benchmarks showed a 20% time savings but they're pretty noisy from all the I/O.