⚡️ Faster instantiation of internet-related arbitraries #5402
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.
Description
These arbitraries used to be relatively costly to instantiate and re-instantiate. While generally not a huge concern, when used in multiple properties and arbitraries this small cost (around 10ms measured for some of them) could be considered as far too much.
Tis PR is responsible to drop this time for later re-instantiations of the same internet-related arbitrary (and also other internet-related arbitraries).
The measured perfomance uplift is impressive:
The initialization time (means second initialization of the arbitrary and later) decreased by a significant factor: from 200 per second to 130k per second for webUrl. This huge improvement also drove significant performance improvements on properties running against such arbitraries by moving from 180 executions per seconds to 1300 (with executions meaning full property execution and thus 100 runs of the predicate).
Checklist — Don't delete this checklist and make sure you do the following before opening the PR
yarn bump
and flag the impacts properlyAdvanced