< prev index next >

test/micro/org/openjdk/bench/java/security/MessageDigests.java

Print this page
rev 60737 : 8252204: AArch64: Implement SHA3 accelerator/intrinsic
Reviewed-by: duke
Contributed-by: dongbo4@huawei.com


  36 import org.openjdk.jmh.annotations.Scope;
  37 import org.openjdk.jmh.annotations.Setup;
  38 import org.openjdk.jmh.annotations.State;
  39 import org.openjdk.jmh.annotations.Warmup;
  40 
  41 /**
  42  * Tests various digester algorithms. Sets Fork parameters as these tests are
  43  * rather allocation intensive. Reduced number of forks and iterations as
  44  * benchmarks are stable.
  45  */
  46 @State(Scope.Thread)
  47 @OutputTimeUnit(TimeUnit.MILLISECONDS)
  48 @Warmup(iterations = 5)
  49 @Measurement(iterations = 10)
  50 @Fork(jvmArgsAppend = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 5)
  51 public class MessageDigests {
  52 
  53     @Param({"64", "1024", "16384"})
  54     private int length;
  55 
  56     @Param({"md2", "md5", "SHA-1", "SHA-224", "SHA-256", "SHA-384", "SHA-512"})
  57     private String digesterName;
  58 
  59     @Param({"DEFAULT", "SUN"})
  60     protected String provider;
  61 
  62     private byte[] inputBytes;
  63     private MessageDigest digester;
  64 
  65     @Setup
  66     public void setup() throws NoSuchAlgorithmException, DigestException, NoSuchProviderException {
  67         inputBytes = new byte[length];
  68         new Random(1234567890).nextBytes(inputBytes);
  69         if ("DEFAULT".equals(provider)) {
  70             digester = MessageDigest.getInstance(digesterName);
  71         } else {
  72             digester = MessageDigest.getInstance(digesterName, provider);
  73         }
  74     }
  75 
  76     @Benchmark


  36 import org.openjdk.jmh.annotations.Scope;
  37 import org.openjdk.jmh.annotations.Setup;
  38 import org.openjdk.jmh.annotations.State;
  39 import org.openjdk.jmh.annotations.Warmup;
  40 
  41 /**
  42  * Tests various digester algorithms. Sets Fork parameters as these tests are
  43  * rather allocation intensive. Reduced number of forks and iterations as
  44  * benchmarks are stable.
  45  */
  46 @State(Scope.Thread)
  47 @OutputTimeUnit(TimeUnit.MILLISECONDS)
  48 @Warmup(iterations = 5)
  49 @Measurement(iterations = 10)
  50 @Fork(jvmArgsAppend = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 5)
  51 public class MessageDigests {
  52 
  53     @Param({"64", "1024", "16384"})
  54     private int length;
  55 
  56     @Param({"md2", "md5", "SHA-1", "SHA-224", "SHA-256", "SHA-384", "SHA-512", "SHA3-224", "SHA3-256", "SHA3-384", "SHA3-512"})
  57     private String digesterName;
  58 
  59     @Param({"DEFAULT", "SUN"})
  60     protected String provider;
  61 
  62     private byte[] inputBytes;
  63     private MessageDigest digester;
  64 
  65     @Setup
  66     public void setup() throws NoSuchAlgorithmException, DigestException, NoSuchProviderException {
  67         inputBytes = new byte[length];
  68         new Random(1234567890).nextBytes(inputBytes);
  69         if ("DEFAULT".equals(provider)) {
  70             digester = MessageDigest.getInstance(digesterName);
  71         } else {
  72             digester = MessageDigest.getInstance(digesterName, provider);
  73         }
  74     }
  75 
  76     @Benchmark
< prev index next >