-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Random overhead improvements #15327
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
Merged
Merged
Random overhead improvements #15327
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…alls to the asserting Random returned from LuceneTestCase.random(). Added LuceneTestCase.nonAssertingRandom(Random) to acquire a fast, non-asserting random instance for intense local computation. Modified a bunch of tests that exceeded 1 million calls to random() result.
…s. tests.random.maxacquires will terminate if too many random() calls are called from within a single test. Corrected a few tests where this was the case.
rmuir
approved these changes
Oct 10, 2025
This PR does not have an entry in lucene/CHANGES.txt. Consider adding one. If the PR doesn't need a changelog entry, then add the skip-changelog label to it and you will stop receiving this reminder on future updates to the PR. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This builds on top of #15325 so it'll be rebased after that is merged.
LuceneTestCase.random() does have an overhead (needs to loop up randomized context, then returns an asserting Random instance to detect if Random is passed between threads, which shouldn't be done for reproducibility).
This adds two build options to allow detecting mis-use of random() in intense loops. These are low-level settings, not meant to be used for devs in general but useful for detecting such abuse cases.
I've fixed some of the test cases to be more graceful. I don't see a lot of an impact on my machine but it's an improvement nonetheless.