> NativePRNG SecureRandom doesn’t scale with number of threads. The performance 
> starts dropping as we increase the number of threads. Even going from 1 
> thread to 2 threads shows significant drop. The bottleneck is the singleton 
> RandomIO instance. Making the RandomIO ThreadLocal helps in removing this 
> bottleneck.
> 
> Here are the jmh  thrpt ops/s data for SecureRandomBench.nextBytes, 
> algorithm=NativePRNGNonBlocking, datasize=64, notshared:
> 
> <html xmlns:v="urn:schemas-microsoft-com:vml"
> xmlns:o="urn:schemas-microsoft-com:office:office"
> xmlns:x="urn:schemas-microsoft-com:office:excel"
> xmlns="http://www.w3.org/TR/REC-html40";>
> 
> <head>
> 
> <meta name=ProgId content=Excel.Sheet>
> <meta name=Generator content="Microsoft Excel 15">
> <link id=Main-File rel=Main-File
> href="file:///C:/Users/xbzhang/AppData/Local/Temp/msohtmlclip1/01/clip.htm">
> <link rel=File-List
> href="file:///C:/Users/xbzhang/AppData/Local/Temp/msohtmlclip1/01/clip_filelist.xml">
> 
> 
> 
> </head>
> 
> <body link="#0563C1" vlink="#954F72">
> 
> 
> 
> #threads | singleton RandomIO | ThreadLocal RandomIO
> -- | -- | --
> 1 | 1269133 | 1279088
> 2 | 862923 | 1362066
> 3 | 819734 | 1630522
> 4 | 809128 | 1614500
> 5 | 821514 | 1594965
> 6 | 808795 | 1545045
> 7 | 783050 | 1499388
> 8 | 787236 | 1470004
> 
> 
> 
> </body>
> 
> </html>

Xubo Zhang has updated the pull request incrementally with one additional 
commit since the last revision:

  Update src/java.base/unix/classes/sun/security/provider/NativePRNG.java
  
  Co-authored-by: Andrey Turbanov <turban...@gmail.com>

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/11069/files
  - new: https://git.openjdk.org/jdk/pull/11069/files/3fe520bf..9c93af32

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=11069&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=11069&range=00-01

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/11069.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11069/head:pull/11069

PR: https://git.openjdk.org/jdk/pull/11069

Reply via email to