< prev index next >

test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java

Print this page

 36 import java.math.BigInteger;
 37 import java.util.concurrent.TimeUnit;
 38 import sun.security.util.math.intpoly.MontgomeryIntegerPolynomialP256;
 39 import sun.security.util.math.intpoly.IntegerPolynomialP256;
 40 import sun.security.util.math.MutableIntegerModuloP;
 41 import sun.security.util.math.ImmutableIntegerModuloP;
 42 
 43 @Fork(jvmArgs = {"-XX:+AlwaysPreTouch",
 44     "--add-exports", "java.base/sun.security.util.math.intpoly=ALL-UNNAMED",
 45     "--add-exports", "java.base/sun.security.util.math=ALL-UNNAMED"}, value = 1)
 46 @Warmup(iterations = 3, time = 3)
 47 @Measurement(iterations = 8, time = 2)
 48 @OutputTimeUnit(TimeUnit.SECONDS)
 49 @State(Scope.Thread)
 50 @BenchmarkMode(Mode.Throughput)
 51 public class PolynomialP256Bench {
 52     final MontgomeryIntegerPolynomialP256 montField = MontgomeryIntegerPolynomialP256.ONE;
 53     final IntegerPolynomialP256 residueField = IntegerPolynomialP256.ONE;
 54     final BigInteger refx =
 55         new BigInteger("6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296", 16);

 56     final ImmutableIntegerModuloP x = residueField.getElement(refx);

 57     final ImmutableIntegerModuloP X = montField.getElement(refx);
 58     final ImmutableIntegerModuloP one = montField.get1();
 59 
 60     @Param({"true", "false"})
 61     private boolean isMontBench;
 62 
 63     @Benchmark
 64     public MutableIntegerModuloP benchMultiply() {
 65         MutableIntegerModuloP test;
 66         if (isMontBench) {
 67             test = X.mutable();
 68         } else {
 69             test = x.mutable();
 70         }
 71 
 72         for (int i = 0; i< 10000; i++) {
 73             test = test.setProduct(test);
 74         }
 75         return test;
 76     }

 36 import java.math.BigInteger;
 37 import java.util.concurrent.TimeUnit;
 38 import sun.security.util.math.intpoly.MontgomeryIntegerPolynomialP256;
 39 import sun.security.util.math.intpoly.IntegerPolynomialP256;
 40 import sun.security.util.math.MutableIntegerModuloP;
 41 import sun.security.util.math.ImmutableIntegerModuloP;
 42 
 43 @Fork(jvmArgs = {"-XX:+AlwaysPreTouch",
 44     "--add-exports", "java.base/sun.security.util.math.intpoly=ALL-UNNAMED",
 45     "--add-exports", "java.base/sun.security.util.math=ALL-UNNAMED"}, value = 1)
 46 @Warmup(iterations = 3, time = 3)
 47 @Measurement(iterations = 8, time = 2)
 48 @OutputTimeUnit(TimeUnit.SECONDS)
 49 @State(Scope.Thread)
 50 @BenchmarkMode(Mode.Throughput)
 51 public class PolynomialP256Bench {
 52     final MontgomeryIntegerPolynomialP256 montField = MontgomeryIntegerPolynomialP256.ONE;
 53     final IntegerPolynomialP256 residueField = IntegerPolynomialP256.ONE;
 54     final BigInteger refx =
 55         new BigInteger("6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296", 16);
 56     @SuppressWarnings("initialization")
 57     final ImmutableIntegerModuloP x = residueField.getElement(refx);
 58     @SuppressWarnings("initialization")
 59     final ImmutableIntegerModuloP X = montField.getElement(refx);
 60     final ImmutableIntegerModuloP one = montField.get1();
 61 
 62     @Param({"true", "false"})
 63     private boolean isMontBench;
 64 
 65     @Benchmark
 66     public MutableIntegerModuloP benchMultiply() {
 67         MutableIntegerModuloP test;
 68         if (isMontBench) {
 69             test = X.mutable();
 70         } else {
 71             test = x.mutable();
 72         }
 73 
 74         for (int i = 0; i< 10000; i++) {
 75             test = test.setProduct(test);
 76         }
 77         return test;
 78     }
< prev index next >