Куча EHCache и вне кучи оценивают ресурсы, достаточные для использования?

EHCache версии 3.2

Как оценить "ehcache:resources"?

Файл: ehcache.xml

<ehcache:cache alias="messageCache">
    <ehcache:key-type>java.lang.String</ehcache:key-type>
    <ehcache:value-type>org.cache.messageCacheBean</ehcache:value-type>
    <ehcache:resources>
        <ehcache:heap unit="entries">10</ehcache:heap>
        <ehcache:offheap unit="MB">1</ehcache:offheap>
    </ehcache:resources>
</ehcache:cache>

Предполагать.

Имя таблицы: сообщение имеет 4 столбца типа varchar2 (100 байт) и содержит данные 1000 строк или более, чем в базе данных.

Насколько достаточно определить значение кучи/вне кучи?

Спасибо.


person bamossza    schedule 10.03.2017    source источник


Ответы (1)


Определение размера кешей является частью упражнения и на самом деле не имеет общего ответа.

Однако необходимо немного понять, как работает Ehcache. В контексте вашей конфигурации:

  • Все сопоставления всегда будут присутствовать в offheap. Таким образом, этот уровень должен быть достаточно большим, чтобы сбалансировать преимущества использования памяти/задержки, которые соответствуют потребностям вашего приложения.
  • Уровень onheap будет использоваться для горячего набора, что еще больше уменьшит задержку. Однако, если он слишком мал, он будет вытеснять все время, делая его преимущество менее интересным, но если он слишком велик, он также слишком сильно влияет на сборку мусора Java.

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

person Louis Jacomet    schedule 10.03.2017