2015-09-12 4 views
1

Я работаю над проектом, в котором мы используем ehcache. Мы активно используем API поиска и имеем около 5-7 атрибутов поиска значений, которые мы используем.Будет ли больше атрибутов поиска в ehcache снизить производительность кеша?

Итак, мне интересно, будут ли эти атрибуты поиска уменьшать производительность кеша?

ответ

1

В Open Ehcache функция поиска использует грубую силу. Это означает, что стоимость поиска оплачивается следующим образом:

  1. При вставке в кеш поисковая подсистема будет обеспечивать соответствие значений атрибутов ожидаемому типу.
  2. При поиске вам нужно будет снова извлечь значение атрибута из сопоставления, ограниченного атрибутами, используемыми в запросе.

Учитывая это, да, число атрибутов оказывает прямое влияние на put, но отсутствует на get.

1

EhCache документация состояния следующие

Поиск операций выполняют в O (п) ..... тест показывает производительность поиска в среднем репрезентативных запросов на 4,6 мс для кэш 10000 ввода, и 427 мс для кеша 1,000,000. Соответственно, автономная реализация - , подходящая для разработки и тестирования.

При использовании автономного Ehcache без BigMemory для производства рекомендуется искать только кеши менее 1 миллиона элементов. Производительность разных критериев различна. Например, здесь - это некоторые запросы и их время выполнения в кеше 200 000 элементов. (Обратите внимание, что эти результаты все быстрее, чем указано выше , потому что они выполняют один критерий).

Два важных момента, упомянутых здесь, - Выполнение разных критериев варьируется, и имеет значение, если существует один критерий по сравнению с несколькими критериями. Хотя фактическое влияние на производительность можно найти только путем бенчмаркинга для вашего случая использования - документация предполагает, что это имеет некоторый эффект. Лучший способ - сравнить его самостоятельно.