[
https://issues.apache.org/jira/browse/OFBIZ-11020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17042525#comment-17042525
]
Michael Brohl commented on OFBIZ-11020:
---------------------------------------
Due to the implementation docs the RandomNumberGenerator for Math.random() is
created once an reused/properly synchronized.
{code:java}
/**
* Returns a {@code double} value with a positive sign, greater
* than or equal to {@code 0.0} and less than {@code 1.0}.
* Returned values are chosen pseudorandomly with (approximately)
* uniform distribution from that range.
*
* <p>When this method is first called, it creates a single new
* pseudorandom-number generator, exactly as if by the expression
*
* <blockquote>{@code new java.util.Random()}</blockquote>
*
* This new pseudorandom-number generator is used thereafter for
* all calls to this method and is used nowhere else.
*
* <p>This method is properly synchronized to allow correct use by
* more than one thread. However, if many threads need to generate
* pseudorandom numbers at a great rate, it may reduce contention
* for each thread to have its own pseudorandom-number generator.
*
* @return a pseudorandom {@code double} greater than or equal
* to {@code 0.0} and less than {@code 1.0}.
* @see Random#nextDouble()
*/
public static double random() {
return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
}
{code}
I see no real benefit from changing this to new Random() ... then.
Closing.
> Use Random.nextDouble() instead of Math.random()
> ------------------------------------------------
>
> Key: OFBIZ-11020
> URL: https://issues.apache.org/jira/browse/OFBIZ-11020
> Project: OFBiz
> Issue Type: Improvement
> Components: framework
> Reporter: bd2019us
> Assignee: Michael Brohl
> Priority: Trivial
> Attachments: OFBIZ-11020.patch
>
>
> When using Math.random instead of Random.nextDouble, there is a slight
> performance cost. Due to Math.random invoking an instance of Random This cost
> can be alleviated by directly using Random.nextDouble. This also allows for
> more control over the randomization in the future.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)