-
-
Notifications
You must be signed in to change notification settings - Fork 64
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
Performance Degradation with 1.5.4 #214
Comments
@tmohme If you find a way to extract the specific test class that would be very helpful. Most probably the secret is in the arbitraries, so just posting the provider methods might already be a first step towards identifying the root cause. When you collect additional evidence, switching off edge cases can also provide additional data points. |
Without edge case generation, the time for the complete test suite goes down from 17:27 to 7:56 - even fasten than 1.5.2 Edit: |
While in #206 the most affected test used our most complicated arbitrary, this time it is our third largest arbitrary . . . it will take some time to extract all the required pieces into a reproducer project. |
Since it is obviously edge case related just a screenshot of the provider methods (or arbitrary provider classes if there are any) could already help me to form a theory and try a few things. |
@tmohme Do you use Combinators a lot in the affected properties? |
Yes, combinators are used heavily. |
After all back to the strip-down approach: jqwik-214-demo.zip |
That was very helpful. The bug (well, there may be more than one) is an oversight by me which can be easily fixed. I'll keep you posted. |
Initial fix available in 1.5.5-SNAPSHOT |
The fix looks good! |
Testing Problem
I'm experiencing a significant performance degradation with 1.5.4 (compared to 1.5.3, 1.5.2).
While the overall runtime of the complete test suite increased by roughly 25% compared to 1.5.3 and 100% compared to 1.5.2 (760 tests, 1.5.2: 8:22 => 1.5.3: 13:58 => 1.5.4: 17:27), some tests are hit exceptionally hard.
The current situation is probably a mix of not having completely addressed the problem in #206 and some new things.
That does not at all mean the fixes done in #206 were useless.
The package (28 tests) that saw the largest increase in runtime from 1.5.2 to 1.5.3 still/again looks good: 0:55 => 4:36 => 1:03
This time a different package (229 tests) got hit hardest: 3:06 => 3:49 => 6:27
The test class (16 tests) with the biggest degradation: 0:04 => 0:10 => 1:48
I'll continue my investigation, trying to identify some hot spots and post the results here.
The text was updated successfully, but these errors were encountered: