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

Faster "hot" restore #3092

Merged
merged 2 commits into from Feb 28, 2018

Conversation

Projects
None yet
3 participants
@vbfox
Copy link
Contributor

vbfox commented Feb 27, 2018

Remove two slow part from doing paket restore when a restore isn't needed

  • Setting ServicePointManager.SecurityProtocol is costly as it initialize a lot of .Net subsystems we don't otherwise use so I split the Utils module in two. As the network isn't used if everything is there the static constructor of NetUtils is never called.
  • Make filling supportMap with it's initial value lazy. It's costly and not used in such restores.

vbfox added some commits Feb 27, 2018

Lazily initialize framework maps
They are not needed on a simple restore but take time
Split Utils for the net from the rest
This ensure that ServicePointManager.SecurityProtocol isn't set in cases
where the network doesn't need to be touched (It's pretty slow)
@matthid
Copy link
Member

matthid left a comment

Utils.fs was kind of long anyway.

@forki

This comment has been minimized.

Copy link
Member

forki commented Feb 28, 2018

@forki

This comment has been minimized.

Copy link
Member

forki commented Feb 28, 2018

ok test failure is unrelated. it's red on #3090 as well

@forki forki merged commit a2e0c41 into fsprojects:master Feb 28, 2018

1 of 2 checks passed

continuous-integration/appveyor/pr AppVeyor build failed
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@forki

This comment has been minimized.

Copy link
Member

forki commented Feb 28, 2018

ok seems https://www.nuget.org/packages/Microsoft.Diagnostics.Tracing.EventSource.Redist/ released a package 7h ago. I will fix the test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment