【发布时间】:2017-02-24 06:38:57
【问题描述】:
最近我用 OpenSSLJCE 替换了 SunJCE,OpenSSLJCE 是一个私有包,它使用 Openssl 原语(本机库)实现 JCE 以进行 TLS 终止。
使用 OpenSSLJCE 已观察到大约 35% 的性能改进。
我的问题是,
这种性能提升的原因是什么?是不是因为 openssl 是在原生代码中执行的?
我认为 SunJCE 正在解密(TLS 终止)Java 堆中的内容,而原生 Openssl 需要将内容复制到处理堆然后解密内容并将其发送回 Java 堆,这涉及两个副本。我的理解正确吗?
请提供您的建议和参考。
【问题讨论】:
-
进行比较时,您确定使用的是相同的 TLS 协议版本和密码套件吗?
-
@AndrewHenle,是的,我使用了相同的密码套件和协议版本的 TLS。
标签: java ssl java-native-interface tls1.2