【发布时间】:2014-03-14 04:27:56
【问题描述】:
我使用 gemfire 作为我的缓存。缓存堆大小远高于 100GB。我发现当我们从客户端将数据放入 gemfire 缓存中时,它会将数据序列化并发送到服务器,并且在服务器上数据以序列化的形式存储。 问题:
- 当我尝试执行任何服务器上的函数调用时,它会开始反序列化数据,这确实非常耗时,有时仅遍历缓存中的对象就需要一个多小时。 (对象数量接近 600 万个)。
- 我尝试使用 gemfire 自定义序列化(DataSerializer 类)。所有数据都在缓存中后所需的内存量大约为 60GB,如果我使用 Java 默认序列化,则它是相同的。
- 我尝试使用名为 Kryo https://github.com/EsotericSoftware/kryo 的库,这确实有很大帮助,但我仍然不明白为什么 gemfire 序列化对我没有帮助,因为我正在单独序列化类的每个属性,所以不应该成为编写类头和任何其他元数据的负担。
任何帮助将不胜感激。
【问题讨论】:
-
@JasonC 更正了拼写错误。
标签: java serialization deserialization gemfire