Cache result of Docker OS to speed up XUnit test discovery #6216
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.
I got frustrated with slow Test Discovery and used PerfView on a run of our unit tests to see why it took so long.
DockerOS
was being accessed many times during test discovery because we have the customLinuxImageTheory
attribute. Each time it was accessed, it took two seconds to calldocker.exe
, even though the result never changes during a single test run.Wrapping it in a Lazy<> speeds up test discovery by a factor of ~60.
Before - 27.64 seconds
After - 0.44 seconds