0

有谁知道检查存储在 gemfire 缓存中的对象大小的方法?甚至是区域本身的大小(以 MB 为单位,而不是它们包含的对象数量)。

我们正在调整一些对象的构成,我想看看我们在 Gemfire 序列化它们所需的时间和最终产品的大小上施加了多少额外/更少的压力......

干杯,戴夫。

4

2 回答 2

3

如果其他人走这条路,这里有几篇最近发布的文章可能与这个问题有关:

Data Sizer Java 实用程序类:http: //communities.vmware.com/docs/DOC-20695

也许,不够具体,但仍然非常有用的是 GemFire 内存大小指南:http: //communities.vmware.com/docs/DOC-20714

于 2012-10-22T18:09:58.900 回答
1

回答您的问题可能有点晚了,但您可以尝试以下方法之一来获取缓存中对象的大小:

1) 使用可以从 vmware 网站下载的 GFMon。它会告诉你每个区域的字节大小。

2)使用方法CachedDeserializableFactory.calcSerializedMemSize(object),它会告诉你对象被序列化后在内存中的大小。

您需要注意,您的对象并不总是以序列化形式存储在缓存中。要强制在缓存中序列化对象,可以使用系统属性 gemfire.PREFER_SERIALIZED=true。

例如:java -Dgemfire.PREFER_SERIALIZED=true com.example.MyCacheServer

于 2011-08-21T23:58:32.147 回答