-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
vrp benchmark #2096
vrp benchmark #2096
Conversation
Thanks for the benchmark. If you can, please post the associated profiler outputs in a gist or here. I might take a look, but making no promises. This is an interesting problem to solve. |
Here are the time to process the instance through multiple versions of grape
Moreover, here are the time profile for versions 0.18.0, 1.0.0, 1.0.1 and 1.4.0 |
I see a bisect between 1.0.0 and 1.0.1 as a next step! |
I not really sure of the logic behind the meets_dependency? method. My assumption is that currently a param checks that all its child meet its own dependency, even before checking that it requires to really check it ? Btw, changing the order makes the benchmark met a total time around 3 seconds |
I don't know much about that change, git blame and cc them here for comment? |
The fact that all specs pass tells me that it's a fix. Try seeing which specs break if you remove the parent check, it should give us a hint on why that's there. Update CHANGELOG, lets try to convince ourselves that it's correct and merge? |
parameter @dependent_on is only active if the params or one of its parent belongs to a 'given' declaration. Until now, we check that all the current params and their childs meets their dependency which first consist into verifying that one of the parent has the variable @dependent_on active. I've added a spec to validate my assumption. @rnubel as you've introduced the related change #1661 and #1625 of the meets_dependency? method. Is the logic correct ? |
I merged #2097, care to rebase this please? Can I please have another pair of eyes from @dm1try @dnesteryuk too? |
The branch is rebased and the conflict has been managed I didn't find any interference in the grape behaviour with #2097 |
This is great work @braktar, thank you. I merged it. |
Thanks, that's a great step for us ! It divides by 3 the time to compute our current biggest instances. |
As mentioned on the discussion forum, we are currently still using v0.18.0 as the performances for large models are, in the recent versions, greatly slowest.
This PR add a benchmark test with a large model.
With version v0.18, the input is treated in 13.934s
With version v1.4 and the default param builder : 88.520s
With version v1.4 and the hash param builder : 39.292s
With version v1.4 and hashie mash as param builder : 108.923s