我正在使用 java 密钥存储来存储和检索加密密钥。当我的密钥存储大小很小时,它的工作速度更快。但是,一旦我的密钥存储大小增加,密钥存储操作就会变慢。
我正在linux平台上工作,Java版本Jdk_1.8。和 safenet 作为提供商。
我一直面临着与执行速度随不同操作系统平台而变化的相同问题。
JVM 将密钥存储加载到内存中。它有哈希表集合作为内部存储。
哈希表是同步的。
每当您从密钥存储执行获取操作时,它都会从内存中的密钥存储而不是从物理密钥存储返回它。
您可以通过在 Linux 基本操作系统中使用 ("top" - %wa 部分) 命令来确认。
密钥存储使用哈希表,这是性能下降的根本原因。
我通过在初始化项目时将密钥库中的所有密钥加载到 ConcurrentHashMap 中解决了这个问题。后来,
所有读取操作将从 MAP 而不是密钥库执行。
并确保所有写入操作都将在密钥库和 MAP 上执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)