-
-
Notifications
You must be signed in to change notification settings - Fork 189
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
⚡️ Drop bailout linked to toss #3564
Conversation
The following optim mostly address performance issues related to toss in the case of no examples. While examples can be a legit usage, we have not covered it i this optimization (yield* not being optimized a lot as it triggers bailout).
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit 0747b26:
|
Codecov Report
@@ Coverage Diff @@
## main #3564 +/- ##
=======================================
Coverage 95.67% 95.68%
=======================================
Files 201 201
Lines 5185 5188 +3
Branches 1105 1105
=======================================
+ Hits 4961 4964 +3
Misses 215 215
Partials 9 9
Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
Performance change at: https://github.com/dubzzz/fast-check-benchmarks/actions/runs/3956287252 |
Performance benefits seem low or not there. I'll rather kill some parts causing bailouts and not fix all of them. It seems that after several bailouts the toss function finally makes it to an optimized version. The only piece remaining and causing bailout will be the examples part of toss (even if no examples). |
Another benchmark: https://github.com/dubzzz/fast-check-benchmarks/actions/runs/3961303877 |
The following optim mostly address performance issues related to toss in the case of no examples. While examples can be a legit usage, we have not covered it i this optimization (yield* not being optimized a lot as it triggers bailout).
Category:
Potential impacts: