有谁知道检查存储在 gemfire 缓存中的对象大小的方法?甚至是区域本身的大小(以 MB 为单位,而不是它们包含的对象数量)。
我们正在调整一些对象的构成,我想看看我们在 Gemfire 序列化它们所需的时间和最终产品的大小上施加了多少额外/更少的压力......
干杯,戴夫。
有谁知道检查存储在 gemfire 缓存中的对象大小的方法?甚至是区域本身的大小(以 MB 为单位,而不是它们包含的对象数量)。
我们正在调整一些对象的构成,我想看看我们在 Gemfire 序列化它们所需的时间和最终产品的大小上施加了多少额外/更少的压力......
干杯,戴夫。
如果其他人走这条路,这里有几篇最近发布的文章可能与这个问题有关:
Data Sizer Java 实用程序类:http: //communities.vmware.com/docs/DOC-20695
也许,不够具体,但仍然非常有用的是 GemFire 内存大小指南:http: //communities.vmware.com/docs/DOC-20714
回答您的问题可能有点晚了,但您可以尝试以下方法之一来获取缓存中对象的大小:
1) 使用可以从 vmware 网站下载的 GFMon。它会告诉你每个区域的字节大小。
2)使用方法CachedDeserializableFactory.calcSerializedMemSize(object),它会告诉你对象被序列化后在内存中的大小。
您需要注意,您的对象并不总是以序列化形式存储在缓存中。要强制在缓存中序列化对象,可以使用系统属性 gemfire.PREFER_SERIALIZED=true。
例如:java -Dgemfire.PREFER_SERIALIZED=true com.example.MyCacheServer