On Tue, 6 Feb 2024 13:52:09 GMT, Oli Gillespie <ogilles...@openjdk.org> wrote:

>> Avoid expensive `Class.forName` call when constructing Providers such as 
>> `SecureRandom` which take constructor parameters. This can easily be cached 
>> in EngineDescription (this cache already existed before, it was removed in 
>> [JDK-8280970](https://bugs.openjdk.org/browse/JDK-8280970) as unused, I'm 
>> bringing it back unchanged to support this new usage).
>> 
>> Benchmark results on my Linux x86 host show around a 20% reduction in time 
>> to create a new `SecureRandom` instance. Most of the remaining overhead is 
>> due to a failing constructor lookup - see 
>> [JDK-8324648](https://bugs.openjdk.org/browse/JDK-8324648).
>> 
>> 
>> Before
>> newSecureRandom  avgt  2930 ± 50  ns/op
>> 
>> After
>> newSecureRandom  avgt  2400 ± 33  ns/op
>> 
>> 
>> I have seen multiple real-world applications which call `new SecureRandom()` 
>> on the hot path, so I believe efficiency here is important.
>
> Oli Gillespie has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Update copyright year

Assuming the approvals still hold after the trivial copyright change, I think 
this is ready to go. Thanks all.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/17559#issuecomment-1936017246

Reply via email to