-
Notifications
You must be signed in to change notification settings - Fork 526
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
Paket 4.x install command takes hours to complete (while 3.x takes minutes) #2289
Comments
/cc @cloudRoutine I assume it's related to the resolver change. Any chance you could take a look? |
haha. we should remove verbosefn completely! |
yep very nice! The bug report really indicated some algorithmic problem (like the graph list you found, instead of the string concat). thanks for looking into this. I'm really waiting for these improvements :) (you saved me from some work I wanted to do eventually, thanks!) |
I'm not sure if order is important. And I think the issue is equality checks on Requirements. they are very slow |
@forki, yup, 43% of total time is Requirements.Compare. Luckily that compare function should have a bit of potential for improvements. Changing list to set didn't improve it noticeably. |
that |
@cloudRoutine see 0x53A@2251ab3, that fixed it without affecting logging. |
Yes that's the correct fix. Verbosefn should go completely
Am 26.04.2017 20:41 schrieb "Lukas Rieger" <[email protected]>:
… @cloudRoutine <https://github.com/cloudRoutine> see ***@***.***
<0x53A@2251ab3>,
that fixed it without affecting logging.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2289 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AADgNFovpUqzHeaw5D4mV84wSAyXeHEvks5rz4_lgaJpZM4NI1d6>
.
|
@0x53A you're right it is going mad at some point and it's done that for a long time, I never was able to identify the reason behind it and the last time I worked on the resolve function I was focused on eliminating the stack overflows and never got around to fixing this part |
since appveyor just failed due to a goddamn timeout on basic resolver spec I included this change on ef3f1c4 |
I tried a few things, the ones that seemed to improve performance are pushed to https://github.com/0x53A/Paket/tree/perf, but in general I think the algorithm should be fixed first. If none of you beat me to it, I will try to reduce the repro tomorrow, and maybe figure out what's wrong with the resolver. |
So I was able to reduce it:
If you try to reproduce it yourself, you need to always delete the lockfile so that it will start with a clean slate. As you can see, even if it is now able to resolve it, it still demonstrates that strange behaviour of testing all different versions of suave. |
I got a bit further debugging this: It (successfully) resolves the following Requirements: then it tries to resolve NUnit > 3, but finds a conflict. So it goes back one step, to Suave, and loops over all versions of Suave. |
So I think (I hope) I solved it: The full initial paket.dependencies:
the relevant change is fuseConflicts: master...0x53A:perf#diff-781e85b03afcc7c6cedfbd46e3d3b607R659 Instead of just going back one step, I try to find a step that matches the current conflict. |
Omg I merged your branch and get exactly the same :(. Seems like my fix/additional change neglects your improvements?!
|
I just wanted to say thank you to everyone working on the issue. Watching you resolving this from a poor repro in just a few days made my jaw drop on the floor. You are awesome and I hope next time I'll be able to help and participate more! |
Description
Paket 4.x install command takes a very long time to process my
paket.dependencies
. I let it run for ~hour and then just killed it. Paket 3.x handled it without problems.I'm on windows.
Repro steps
paket_old.exe install
git add .; git reset --hard
paket.exe install
Expected behavior
Both versions should end running in short time.
Actual behavior
paket.exe install
takes > 1hKnown workarounds
Use Paket 3.x.
The text was updated successfully, but these errors were encountered: