EHCache堆和堆外评估资源足以使用?

时间:2017-03-10 04:39:01

标签: heap ehcache off-heap

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行或更多数据库。

提供足够多的定义堆/ offheap值?

谢谢。

1 个答案:

答案 0 :(得分:1)

调整缓存是练习的一部分,并没有真正的答案。

但是,需要了解Ehcache的工作原理。在您的配置环境中:

  • 所有映射将始终存在于offheap中。因此,此层的大小应足够大,以平衡符合应用程序需求的内存使用/延迟优势。
  • onheap层将用于热线集,从而提供更好的延迟减少。然而,如果太小,它将驱逐所有的时间,使其利益减少,但如果太大,它也会影响Java垃圾收集。

您可以做的一件事就是在一个测试中移动到字大小。虽然它会对性能产生影响,但它可以让您评估映射占用的内存量。从而得出在你准备好的内存中适合多少映射。