【发布时间】:2012-02-23 01:22:32
【问题描述】:
我需要在内存中缓存大量的map。每个map 将与key 关联以进行查找。我打算为此使用POCO 的缓存框架。
如果我将每个map 序列化为JSON,这会减少每个缓存项的内存占用吗?如果是这样,我可以期待什么样的节省 - 10%、50%?
你会推荐缓存普通对象还是JSON?
【问题讨论】:
标签: c++ json caching memory serialization
我需要在内存中缓存大量的map。每个map 将与key 关联以进行查找。我打算为此使用POCO 的缓存框架。
如果我将每个map 序列化为JSON,这会减少每个缓存项的内存占用吗?如果是这样,我可以期待什么样的节省 - 10%、50%?
你会推荐缓存普通对象还是JSON?
【问题讨论】:
标签: c++ json caching memory serialization
一般来说,是的,缓存为 JSON 在存储方面比 C++ 对象更有效。
唯一的例外是,如果您有一个包含一堆(例如,int)字段的对象,并且您将其转换为 JSON 表示(JSON“对象”或 JSON“数组”)作为字符值。 JSON 字符表示不可能像二进制字段那样紧凑,所有字段都被压缩在一个对象中。
但如果您说的对象包含大量指向其他对象的指针(即概念 JSON 的典型“对象”表示),那么实际的 JSON 可能会紧凑 2 倍到 8 倍。
【讨论】: