EhCache 自动资源控制(Automatic Resource Control,ARC)

它是提供了一种智能途径来控制缓存,调优性能。特性包括:

内存内缓存对象大小的控制,避免OOM出现。

池化(cache manager级别)的缓存大小获取,避免单独计算缓存大小的消耗。

灵活的独立基于层的大小计算能力,下图中可以看到,不同层的大小都是可以单独控制的。

可以统计字节大小、缓存条目数和百分比。

优化高命中数据的获取,以提升性能,参见下面对缓存数据在不同层之间的流转的介绍。

缓存数据的流转包括了这样几种行为:

Flush:缓存条目向低层次移动。

Fault:从低层拷贝一个对象到高层。在获取缓存的过程中,某一层发现自己的该缓存条目已经失效,就触发了Fault行为。

Eviction:把缓存条目除去。

Expiration:失效状态。

Pinning:强制缓存条目保持在某一层。

下面的图反映了数据在各个层之间的流转,也反映了数据的生命周期: