Refactor to expose dependencies on NodeContext and avoid NodeContextRepository lookups #92
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.
NodeContext
contains theProjectGraphNode
and aNodeContextRepository
would be used to look up theNodeContext
objects for dependencies. This is deceptively expensive since the lookup requires creating aNodeDescriptor
, which allocates aSortedDictionary
and copies the global properties to it.This refactor has
NodeContext
contain a list of its dependencies (inNodeContext
form already) to avoid all these lookups. This actually cascades to quite a bit of simplification and removal of some plumbing to the cache client layer since it was also iterating dependencies so required theNodeContextRepository
.