我们的一位客户已从 IBM J9 (Java 8) 迁移
IBM J9 VM (build 2.8, JRE 1.8.0 Linux amd64-64 Compressed References 20160427_301573 (JIT enabled, AOT enabled)
J9VM - R28_Java8_SR3_20160427_1620_B301573
JIT - tr.r14.java.green_20160329_114288
GC - R28_Java8_SR3_20160427_1620_B301573_CMPRSS
J9CL - 20160427_301573)
JCL - 20160421_01 based on Oracle jdk8u91-b14
到 Java 11
openjdk version "11.0.11" 2021-04-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.11+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.11+9-LTS, mixed mode, sharing)
他们已将安全提供程序从 更改com.ibm.crypto.provider
为sun.security.provider
,并且他们注意到签名 JWT 功能中的性能问题,在 JDK11 中大部分时间都花在 MD5 类上,坏消息是 IBM JDK 已弃用并禁用 MD5,第二个消息是 MD5 on java 很慢,它是用java编写的。我们已经下载并检查了 IBM JDK 的 MD5 实现,它充满了本机调用、二进制移位和内在代码,然后我们在Javadoc中找到了该类的内容,它简单地说:
This is done via a hardware crypto call.
当 IBM 使用某种 CPU 加密模块时,OpenJDK 使用 Java 代码生成 MD5 哈希。我在 Sun、IBM 或 bouncycastle 实现中找不到任何好的 MD5 基准。知道这是否也可以通过 OpenJ9 中的硬件解决?
提前致谢