Description
The SeedFactory uses Well44497b mixed with a hashCode as the underlying generator. This has output that does not pass BigCrush. Generation of numbers uses a synchronized block around the generator on each call to the generator.
Analysis has shown that:
- Speed of seed array generation can be improved by outputting multiple values per synchronisation
- Use of a XorShift1024SPhi generator which natively passes BigCrush will provide enough output for seed generation before the period expires
- Synchronisation with a ReentrantLock provides more stable performance during concurrent access
Update the SeedFactory to:
- Output arrays using blocks of numbers per synchronisation event
- Use XorShift1024SPhi
- Use a ReentrantLock
Attachments
Issue Links
- is related to
-
RNG-104 SeedFactory seed creation performance analysis
- Closed
- links to