计算Infinispan缓存大小

时间:2015-03-12 06:02:14

标签: java caching infinispan

我需要粗略估计我的Infinispan缓存(使用5.3.0版本实现)的内存使用情况 - (出于学习目的)

由于有no easy way这样做,我想出了以下程序。

添加缓存侦听器以侦听缓存put / remove事件,并使用jamm库使用java.lang.instrument.Instrumentation.getObjectSize记录插入条目的大小。但我对此一点持怀疑态度,是否会为缓存返回正确的内存使用量。我正确地进行了这种测量吗?我在这里遗漏了什么,或者我是否需要考虑更多因素来做这件事?

1 个答案:

答案 0 :(得分:2)

如果您不需要实时信息,找到实际内存使用情况的最简单方法是进行堆转储并查看缓存对象'保留的尺寸(例如Eclipse MAT)。

您的方法将忽略Infinispan内部结构的开销。通常,每个条目的开销应该在150字节左右,但有时它可能会很大 - 例如当你启用驱逐时,Infinispan会根据配置的大小(https://issues.jboss.org/browse/ISPN-4126)分配结构。

相关问题