Cache canonicalized version of paths in path dependencies #4495
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.
The
canonicalize
function is very slow, and the solver compares these a number of times.This attempt of migrating the sdk to use workspaces https://dart-review.googlesource.com/c/sdk/+/397164?tab=comments has all third-party dependencies overridden as path-dependencies. 71 dependencies.
With current pub, this takes 2.245s to resolve on my machine.
After this fix it takes: 0.117s to resolve!
Also this avoid potential issues of inconsistencies if files change during resolution (although, still don't do that).