RFR: 8296818: Enhance JMH tests java/security/Signatures.java
Weijun Wang
weijun at openjdk.org
Tue Nov 15 16:03:04 UTC 2022
On Mon, 14 Nov 2022 05:11:33 GMT, Xue-Lei Andrew Fan <xuelei at openjdk.org> wrote:
> Hi,
>
> May I get the micro benchmarking enhancement reviewed?
>
> Benchmark cases for RSA(SSA-PSS)/DSA are added in the PR. Here is the benchmarking number on a Linux X86_64 platform.
>
> Benchmark (algorithm) (messageLength) Mode Cnt Score Error Units
> Signatures.DSA.sign SHA256withDSA 64 thrpt 15 2076.114 ± 6.269 ops/s
> Signatures.DSA.sign SHA256withDSA 512 thrpt 15 2080.330 ± 4.204 ops/s
> Signatures.DSA.sign SHA256withDSA 2048 thrpt 15 2074.546 ± 11.596 ops/s
> Signatures.DSA.sign SHA256withDSA 16384 thrpt 15 2029.887 ± 6.255 ops/s
> Signatures.DSA.sign SHA384withDSA 64 thrpt 15 882.339 ± 3.343 ops/s
> Signatures.DSA.sign SHA384withDSA 512 thrpt 15 881.690 ± 2.792 ops/s
> Signatures.DSA.sign SHA384withDSA 2048 thrpt 15 876.370 ± 5.779 ops/s
> Signatures.DSA.sign SHA384withDSA 16384 thrpt 15 860.463 ± 3.286 ops/s
> Signatures.EdDSA.sign Ed25519 64 thrpt 15 1198.668 ± 4.347 ops/s
> Signatures.EdDSA.sign Ed25519 512 thrpt 15 1199.107 ± 2.645 ops/s
> Signatures.EdDSA.sign Ed25519 2048 thrpt 15 1191.952 ± 7.202 ops/s
> Signatures.EdDSA.sign Ed25519 16384 thrpt 15 1112.078 ± 5.449 ops/s
> Signatures.EdDSA.sign Ed448 64 thrpt 15 329.802 ± 5.474 ops/s
> Signatures.EdDSA.sign Ed448 512 thrpt 15 328.258 ± 1.725 ops/s
> Signatures.EdDSA.sign Ed448 2048 thrpt 15 322.206 ± 5.911 ops/s
> Signatures.EdDSA.sign Ed448 16384 thrpt 15 317.814 ± 2.339 ops/s
> Signatures.RSA.sign SHA256withRSA 64 thrpt 15 834.704 ± 6.869 ops/s
> Signatures.RSA.sign SHA256withRSA 512 thrpt 15 838.794 ± 2.995 ops/s
> Signatures.RSA.sign SHA256withRSA 2048 thrpt 15 832.343 ± 3.781 ops/s
> Signatures.RSA.sign SHA256withRSA 16384 thrpt 15 833.405 ± 3.750 ops/s
> Signatures.RSA.sign SHA384withRSA 64 thrpt 15 279.930 ± 1.384 ops/s
> Signatures.RSA.sign SHA384withRSA 512 thrpt 15 280.822 ± 1.189 ops/s
> Signatures.RSA.sign SHA384withRSA 2048 thrpt 15 278.644 ± 1.608 ops/s
> Signatures.RSA.sign SHA384withRSA 16384 thrpt 15 277.631 ± 1.266 ops/s
> Signatures.RSA.sign SHA512withRSA 64 thrpt 15 126.927 ± 0.790 ops/s
> Signatures.RSA.sign SHA512withRSA 512 thrpt 15 126.572 ± 0.506 ops/s
> Signatures.RSA.sign SHA512withRSA 2048 thrpt 15 127.159 ± 0.619 ops/s
> Signatures.RSA.sign SHA512withRSA 16384 thrpt 15 126.104 ± 0.262 ops/s
> Signatures.RSASSAPSS.sign SHA256withRSASSA-PSS 64 thrpt 15 832.804 ± 4.243 ops/s
> Signatures.RSASSAPSS.sign SHA256withRSASSA-PSS 512 thrpt 15 828.386 ± 10.118 ops/s
> Signatures.RSASSAPSS.sign SHA256withRSASSA-PSS 2048 thrpt 15 831.469 ± 4.792 ops/s
> Signatures.RSASSAPSS.sign SHA256withRSASSA-PSS 16384 thrpt 15 826.325 ± 2.698 ops/s
> Signatures.RSASSAPSS.sign SHA3846withRSASSA-PSS 64 thrpt 15 276.043 ± 1.594 ops/s
> Signatures.RSASSAPSS.sign SHA3846withRSASSA-PSS 512 thrpt 15 278.548 ± 2.011 ops/s
> Signatures.RSASSAPSS.sign SHA3846withRSASSA-PSS 2048 thrpt 15 276.393 ± 2.155 ops/s
> Signatures.RSASSAPSS.sign SHA3846withRSASSA-PSS 16384 thrpt 15 274.924 ± 1.520 ops/s
> Signatures.RSASSAPSS.sign SHA512withRSASSA-PSS 64 thrpt 15 126.004 ± 0.413 ops/s
> Signatures.RSASSAPSS.sign SHA512withRSASSA-PSS 512 thrpt 15 127.211 ± 0.312 ops/s
> Signatures.RSASSAPSS.sign SHA512withRSASSA-PSS 2048 thrpt 15 127.200 ± 0.338 ops/s
> Signatures.RSASSAPSS.sign SHA512withRSASSA-PSS 16384 thrpt 15 126.327 ± 0.520 ops/s
> Signatures.sign secp256r1 64 thrpt 15 1523.564 ± 22.411 ops/s
> Signatures.sign secp256r1 512 thrpt 15 1529.083 ± 5.903 ops/s
> Signatures.sign secp256r1 2048 thrpt 15 1530.112 ± 7.832 ops/s
> Signatures.sign secp256r1 16384 thrpt 15 1500.652 ± 1.936 ops/s
> Signatures.sign secp384r1 64 thrpt 15 642.752 ± 11.175 ops/s
> Signatures.sign secp384r1 512 thrpt 15 645.279 ± 3.632 ops/s
> Signatures.sign secp384r1 2048 thrpt 15 632.866 ± 4.137 ops/s
> Signatures.sign secp384r1 16384 thrpt 15 624.020 ± 6.282 ops/s
> Signatures.sign secp521r1 64 thrpt 15 319.333 ± 1.587 ops/s
> Signatures.sign secp521r1 512 thrpt 15 320.025 ± 0.890 ops/s
> Signatures.sign secp521r1 2048 thrpt 15 309.922 ± 9.569 ops/s
> Signatures.sign secp521r1 16384 thrpt 15 317.070 ± 0.930 ops/s
>
> Thanks,
> Xuelei
test/micro/org/openjdk/bench/java/security/Signatures.java line 39:
> 37: @Fork(jvmArgsAppend = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3)
> 38: public class Signatures {
> 39: private static Signature signer;
Not a JMH expert. Is it possible to make `Signatures` abstract and move the ECDSA codes into a subclass just like for other algorithms?
test/micro/org/openjdk/bench/java/security/Signatures.java line 152:
> 150:
> 151: public static class RSASSAPSS extends Signatures {
> 152: @Param({"SHA256withRSASSA-PSS", "SHA3846withRSASSA-PSS", "SHA512withRSASSA-PSS"})
Since this test is only about RSASSA-PSS, you can probably only use "SHA256" etc above. Otherwise I keep thinking about whether these are real signature algorithm names. :-)
-------------
PR: https://git.openjdk.org/jdk/pull/11131
More information about the security-dev
mailing list