Есть ли какие-либо проблемы с кэшированием объектов Pattern?
Вы можете сделать оба варианта: либо кэшировать строку шаблона, либо объект Pattern
.Я рекомендую кэшировать строку шаблона в распределенном кэше.
Посмотрев на внутреннюю часть объекта Pattern
, вы увидите, что на самом деле только оригинальная строка шаблона сериализуется.Это означает, что при десериализации (то есть при выборке из распределенного кэша) экземпляру Pattern
необходимо снова построить внутреннее дерево разбора.
При кэшировании строки шаблона у вас будет два преимущества: при проверке кэшасодержимое его читабельное вместо двоичного.В сериализованной форме вы храните больше данных, чем вам нужно, потому что сериализованный поток будет содержать типы.Поэтому я ожидаю крошечного преимущества, потому что нет никаких издержек сериализации.
Если ваши шаблоны сложны, создание дерева объектов снова обходится дороже.Чтобы обойти это, вам нужен внутрипроцессный кеш, который кэширует фактическую ссылку на объект.Вы можете объединить их с распределенным кешем.Современный внутрипроцессный кэш с самым быстрым временем доступа - это кофеин или cache2k .Сколько времени вы можете сэкономить, зависит от вашего общего сценария.