2016-07-19 16 views
0

Я использую хранилище ключей Java для хранения и получения ключа шифрования. Он работает быстрее, а размер хранилища ключей невелик. Но как только размер моего хранилища ключей увеличивается, а операция хранения ключей идет медленно.Java Keystore.getKey() медленно, пока размер хранилища ключей увеличивается

Я работаю над платформой linux, Java-версией Jdk_1.8. и safenet как поставщик.

+0

Каков размер магазина, когда производительность становится проблемой? Пожалуйста, добавьте эту информацию на вопрос, а не как ответ. – zaph

+1

Связано это с вопросом @Nirav Shah? Если да, пожалуйста, скопируйте и удалите один из вопросов. Дубликат http://stackoverflow.com/q/38456568/451475 – zaph

+0

Хорошо, похоже. но мой вопрос касается ограничения хранилища ключей. Спасибо Zaph –

ответ

1

Я столкнулся с той же проблемой, что и скорость выполнения, зависит от платформы операционной системы.

Jvm загружает хранилище ключей в памяти. И его наличие коллекции хеш-таблицы в качестве внутреннего хранилища.

Hashtable синхронизирован.

Всякий раз, когда вы выполняете операцию получения из хранилища ключей, он возвращает его из хранилища ключей в памяти не из физического хранилища ключей. Вы можете подтвердить это с помощью команды («top» -% wa section) в операционной системе Linux.

Ключ-магазин использует хеш-таблицу и является основной причиной снижения производительности.

Я решил эту проблему, загрузив все ключи из хранилища ключей в ConcurrentHashMap при инициализации проекта. и позже, Все операции чтения будут выполняться из MAP вместо хранилища ключей. И убедитесь, что все операции записи будут выполняться как на хранилище ключей, так и на MAP.

+0

да его работа для меня. Я использовал карту для чтения данных, и она работает для меня .. но почему java keystore использовать hastable? –

0

Мы столкнулись с этой проблемой, когда мы использовали файл safenet jar в качестве поставщика хранилища ключей, когда я удалил safenet в качестве провайдера &, использующих поставщиков Java по умолчанию, тогда я не сталкивался с какой-либо проблемой, связанной с производительностью.